home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / contrib / treefox.lzh / TREE&FOX.DOC < prev    next >
Text File  |  1993-04-24  |  66KB  |  1,486 lines

  1.  
  2. TREE & FOX
  3. Explorations in computer aided natural language analysis
  4.  
  5.  
  6. Manfred Jahn
  7. English Department
  8. University of Cologne
  9. 1993
  10.  
  11.  
  12. TREES      A program to create graphs and phrase markers.
  13.  
  14. TREECAD    A utility for generating, manipulating and exploring X-bar trees,
  15.            transformations and cross-language variation.
  16.  
  17. FOX        A "Frame Oriented X-bar Parser" which parses sentences in
  18.            interactive or automatic mode.
  19.  
  20.  
  21. TREE & FOX documents three PC-based programs aimed at processing
  22. linguistic data structures. The programs run under non-386 MS-DOS ICON
  23. (from version 8.0).  Due to the experimental and provisional nature of
  24. the programs the author makes no warranties of any kind as to their
  25. robustness or suitability for any application.
  26.  
  27.  
  28. Notes:
  29. ======
  30. (1) In this file, asterisks (*) are used to mark strings that are
  31.     italicized in the original printed output (available from the
  32.     author).
  33.  
  34. (2) If you print this document, make sure to set a nonproportional font
  35.     such as Courier or Letter Gothic.
  36.  
  37.  
  38.  
  39.  
  40. 1. TREES - a tree drawing utility
  41.  
  42. 1.1. Structural representations. The basic data type of syntactic analysis
  43. is the directed graph. There are two common representations: labelled
  44. bracketings and trees. Labelled bracketing quickly tends to become
  45. obscure even with trees of moderate complexity. A tree is a far superior
  46. representation, but it takes up more space and is expensive to print.
  47. Consider the following representations:
  48.  
  49.     a.  [NP [Detthe] [Nbar [APvery lucky] [Nbar [Ngirl] ] ] ]
  50.         [category identifiers appear as subscripts in the original
  51.         printing]
  52.  
  53.     b.  (NP,(Det,the),(Nbar,(AP,very lucky),(Nbar,(N,girl))))
  54.  
  55.     c.
  56.         NP        
  57.   ┌─────┴──────┐   
  58.  Det          Nbar      
  59.   │        ┌───┴─────┐   
  60.   │        AP       Nbar
  61.   │        │         │   
  62.   │        │         N  
  63.   │        │         │    
  64.  the   very lucky   girl 
  65.  
  66.   (a) is a type of labelled bracketing frequently found in linguistic
  67. textbooks. (b) is a straightforward mapping of (a) into a plain string
  68. format. Directly or indirectly, it serves as the basic input data
  69. structure for all of the utility programs introduced in this report.
  70. Note that in the representation of (b) each nonterminal category is
  71. any label after an opening bracket (i.e., NP, Det, Nbar etc.), and any
  72. item preceded by a comma is a terminal item. (c) has been generated from
  73. (b), and it is clearly the most easily comprehensible representation of
  74. the structural relationships involved.
  75.  
  76. 1.2. Input/Output. Input for program Trees comes from a plain text file
  77. called trees.in. This file can contain any number of "tree plans" in the
  78. formats specified below. The trees generated from these plans are
  79. displayed on the screen and saved to an output file called trees.out. Two
  80. input formats may be used:
  81.  
  82.     a.  Single lines of labelled bracketing (as in 1.1b).
  83.  
  84.     b.  A sequence of lines with indentations representing the tree
  85.         structure:
  86.  
  87. NP
  88.   Det
  89.     the
  90.   Nbar
  91.     AP
  92.       very lucky
  93.     Nbar
  94.       N
  95.         girl
  96.  
  97.         The root category must appear in column 1. Subordinate levels
  98.         are indicated by progressive indentations of two spaces. Phrases
  99.         consisting of several words (e.g., "very lucky") are acceptable
  100.         node labels. Do not use round brackets or commas. Most higher
  101.         ASCII characters (particularly 250 and up) should also be avoided.
  102.  
  103.     c.  Successive tree plans must be separated by one or more blank
  104.         lines. Lines beginning with a hash character (#) are treated as
  105.         comments. Use a file lister to view some sample plans in trees.in.
  106.  
  107. 1.3. Invoke the program with the command line iconx trees. The following
  108. parameters are then requested by the program:
  109.  
  110.     a.  Terminal nodes on baseline or *in situ*.
  111.  
  112.     b.  The depth of the tree (default is 8). Since Trees is a small
  113.         program and memory is the only limitation, trees can be built to
  114.         considerable depths.
  115.  
  116.     c.  Optional: Tab offset and increments - see below.
  117.  
  118. 1.4. Postediting for proportional fonts. The output trees will display
  119. correctly on the computer's text screen or if printed with a monospaced
  120. (nonproportional) typeface. To a certain extent, Trees can provide some
  121. support towards proportionally spaced output such as the following:
  122.  
  123. [sorry, unable to display this here; refer to original printed text]
  124.  
  125. Unfortunately, this type of output requires a certain amount of
  126. postediting. To begin with, your printer must have a monospaced typeface
  127. and a proportional typeface of roughly the same dimensions. Test this by
  128. printing or previewing a couple of sample lines with several typefaces. On
  129. HP type printers, viable combinations include Courier 16.67/Times Roman
  130. 10 pt and Courier 12/Times 12pt. The following notes assume the Courier
  131. 12/Times 12 configuration.
  132.  
  133.   The basic idea is to superimpose proportional node labels on to a
  134. monospaced scaffold of pseudographics lines. Under WordPerfect 5.1, this
  135. involves the following steps:
  136.  
  137.     a.  In WordPerfect, set the monospaced font (Courier 12). Also, via
  138.         the Setup option (Shift-F1,3,8), select a small unit of
  139.         measurement for the position display, preferably point sizes (pt).
  140.         As you can see on the status line, a left margin of 1 inch is
  141.         equivalent to a horizontal offset of 72 pt. Type one space, and
  142.         under Courier 12 the cursor will move in increments of 6 pts.
  143.         Verify this on the status line.
  144.  
  145.     b.  Run trees. At the "Calculate Tabstops" prompt press any key
  146.         except ENTER. The program will now ask for an increment value,
  147.         the left margin setting, an indent factor and a proportional
  148.         adjustment. The defaults suggested by the program are 6, 72, 1
  149.         and 4, which happens to be right for 10 c.p.i Courier/Times 12 pt.
  150.         (Set 4.32, 72, 1 and 2.6 for Courier 16.67/Times 10.) The indent
  151.         value can be used to move the tree towards the middle of the
  152.         page. The proportional adjustment varies with different typefaces
  153.         and has to be determined by trial and error.
  154.  
  155.     c.  Trees produces the following output:
  156.  
  157. Branches in columns: 12 18 21 25 31 
  158. Tabstops from Margin offset: 10; by Increments: 6
  159. Set center Tabs at: 142   178   196   220   256
  160.    
  161.                  NP
  162.            142   178    220
  163.            ┌─────┴──────┐
  164.           Det          Nbar
  165.            142      196 220   256
  166.            │        ┌───┴─────┐
  167.            │        AP        N
  168.            142   178196 220   256
  169.            │     ┌──┴───┐     │
  170.            │     │     Abar   │
  171.            142   178    220   256
  172.            │     │      │     │
  173.            │     │      A     │
  174.            142   178    220   256
  175.            │     │      │     │
  176.            a    very  lucky  girl
  177.  
  178.         The figures flush to the branches provide a visual cue (needed for
  179.         step f, below) as to which edges are associated with which
  180.         tabstops.
  181.  
  182.     d.  Back in WordPerfect, set the monospaced font (Courier 12) and
  183.         the standard fixed line height appropriate for this font. Import the
  184.         tree (from trees.out) together with its list of tab stop positions.
  185.  
  186.     e.  Move below the imported list of tab stop positions. Load the Tabs
  187.         Menu. Make sure that the tab type is "absolute". Set the tabs;
  188.         first by clearing them (Ctrl-End), then by entering the values
  189.         provided by trees. By default, WordPerfect sets "left align" (L)
  190.         tabs. You need center tab stops, however, so simply place the
  191.         cursor on the newly created "L"s in the Tabs line and change
  192.         them to "C"s. Exit the tabs menu.
  193.  
  194.     f.  Scroll past the monospaced tree and set the Times 12 font. Enter
  195.         the text of the nodes tabbing to the proper branch positions
  196.         indicated in the tree and leaving blank lines as needed. What you
  197.         want is an image of the tree consisting of the labels of the nodes
  198.         only, in their proper positions, but without any of the
  199.         pseudographics. Additional features such as bold, underlining,
  200.         superscripting, italicizing etc. can all be set, now or later,
  201.         providing considerable flexibility.
  202.  
  203.     g.  Move back to the monospaced image of the tree. Turn on "type-
  204.         over" mode and, using spaces, overwrite all monospaced text,
  205.         including the tab position cues, until only a bare scaffold of
  206.         pseudographics lines remains. Turn off typeover mode when
  207.         finished.
  208.  
  209.     h.  Make a note of the line position of the first line of the
  210.         monospaced tree. Superimpose the Times Roman section by
  211.         calling WordPerfect's "Advance to Line" (Shift-F8,4,1,3) function.
  212.         Switch over to previewing mode to check alignment, and correct
  213.         any mistakes.
  214.  
  215.     i.  Once you have mastered the basic technique, it is worth
  216.         considering putting all trees into "text boxes" which in
  217.         WordPerfect define their own set of tab stops and, more
  218.         importantly, have an independent line positioning feature which
  219.         is not affected by any editing changes in the main text. Since tab
  220.         settings in text boxes are calculated relative to a user-specified
  221.         horizontal position, trees should be instructed to calculate tab
  222.         stops from a left margin of zero.
  223.  
  224.  
  225.  
  226.  
  227.  
  228. 2. TREECAD - Designing structural trees
  229.  
  230. 2.1. Basic requirements. TreeCad runs on 386/486 based PCs with a
  231. VGA or EGA screen (no Hercules mode), a mouse and a hard disk. Operation
  232. without a mouse or with lesser processors is possible, but rather
  233. tedious. The program needs as much ordinary memory as can be made
  234. available. TreeCad can either be run from the DOS prompt or under
  235. Windows 3.1. in 386 mode.
  236.  
  237. 2.2. Uses. TreeCad is a text-and-pseudographics based utility for
  238. generating, displaying and manipulating tree structures of all kinds. It
  239. is therefore especially suited to:
  240.  
  241.     o   constructing and editing arbitrary trees. Special support is
  242.         provided for Xbar structures.
  243.  
  244.     o   hilighting structural relationships such as c-command, m-command
  245.         and government.
  246.  
  247.     o   demonstrating and exploring adjunction and movement patterns.
  248.  
  249. 2.3. Operation under DOS.
  250.  
  251.     a.  Program invocation:
  252.  
  253.                  iconx TreeCad
  254.                  iconx TreeCad nomode   [see "switches", below ]
  255.                  iconx TreeCad 7,15,23,59,69,120 nomode
  256.  
  257.         TreeCad.icx can only be run from an ordinary (non-386) DOS
  258.         version of ICON.
  259.  
  260.     b.  Two optional switches may be set:
  261.  
  262.         -   nomode             [prohibits switching into 80,43 mode]
  263.  
  264.             The program attempts to switch into 80,43 mode as soon as
  265.             the system.max variable (i.e., the tree depth) is set to a value
  266.             larger than 11. Mode switching may not work for a number
  267.             of reasons (e.g., insufficient memory, idiosyncratic mode
  268.             commands etc.). In this case, execute a suitable mode
  269.             command and invoke TreeCad with the nomode switch.
  270.  
  271.         -   n1,n2,n3,n4,n5,n6  [colours]
  272.  
  273.             These are six colour attribute numbers in the range 0-255.
  274.             Default settings (for an ordinary DOS screen) are
  275.             7,15,78,14,6,120. If you are displaying the screen via an LCD
  276.             connected to an overhead projector you may find that some
  277.             of the colours do not reproduce effectively. In this case, run
  278.             the ATTRS.EXE utility to determine adequate attributes and
  279.             invoke TreeCad with the new values. The attributes are used
  280.             in the main menu's show group: n1 is the standard normal
  281.             attribute; n2 is the general hilight attribute; n3 is the hilight
  282.             attribute for a c-commanding constituent; n4 is the hilight
  283.             attribute for a c-commanded item; n5 tones down items which
  284.             are not commanded; and n6 hilights a governed item.
  285.  
  286.     c.  Support programs. SCROLLER.EXE and the corpus file,
  287.         treecad.in, must be present for the data.corpus command to
  288.         work. Treecad.in is an editable textfile containing a selection of
  289.         trees in labelled bracketing format. If the PC is short on memory,
  290.         TreeCad may not be able to run the SCROLLER. In this case,
  291.         TreeCad can only be used in its scratch mode. Note that the
  292.         SCROLLER is a standalone program which is restricted to handle
  293.         a maximum of 100 lines restricted to a maximum length of 255
  294.         characters.
  295.  
  296.     d.  Other files. The corpus item selected via the SCROLLER program
  297.         is fed into scroller.dsk which is consulted when the data.corpus
  298.         option is activated from TreeCad. During normal operation of
  299.         TreeCad, all trees generated are saved in a protocol file called
  300.         treecad.tmp. When the verbose option is ON, all diagnostic
  301.         output is fed both to the screen and to treecad.tmp.
  302.         Treecad.tmp is overwritten each time TreeCad is started.
  303.  
  304. 2.4. Operation under Windows 3.1. TreeCad is not a proper Windows
  305. program. However, in Windows 3.1 386 mode it can be run as a "non-
  306. windows application in a window". This has a number of advantages such
  307. as access to the black-on-white screen, a smoothly moving arrow-shaped
  308. mouse pointer, resizable system fonts, data exchange via the clipboard and
  309. inclusion of explicatory text in a separate window. Do the following steps
  310. to set up TreeCad for Windows:
  311.  
  312.     a.  Copy TreeCad.ico and TreeCad.pif, i.e., the icon and program
  313.         information files, to your main Windows 3.1 directory.
  314.  
  315.     b.  In Windows, start the PIF-Editor. Click *File/new*. Click *browse*
  316.         to locate and select TreeCad.pif. The only entries requiring any
  317.         change are the lines specifying the ICON directory. Adjust this to
  318.         whatever directory you are using for your TREE&FOX files. Exit
  319.         the PIF-Editor, saving the changes. Invoke the Program Manager's
  320.         *File/new* menu and OK the box *program item*. Enter
  321.         "Treecad.pif" as *commandline* text. Click *change icon*.
  322.         Disregard the error message and click OK. Use *browse* to locate
  323.         treecad.ico. Select it and click OK. The TreeCad icon will appear
  324.         among the Program Manager's other program symbols, and
  325.         TreeCad is ready to run.
  326.  
  327.     c.  Some further hints:
  328.  
  329.         - There is an option to adjust font sizes in TreeCad's system
  330.           menu field. The most suitable font sizes are 8x12 and 7x12.
  331.  
  332.         - The "edit" option lets you copy all or part of your TreeCad
  333.           display to the clipboard.
  334.  
  335.     d.  Notice: TreeCad may crash when the system.max variable is set
  336.         to a value larger than 10. This may be due to a lack of memory
  337.         or the fact that no ANSI.SYS driver is presently specified in the
  338.         CONFIG.SYS file. For large values of max (i.e., 11..15), make sure
  339.         to resize the window and select a suitable font.
  340.  
  341. 2.5. Initial menu. The initial screen presents three button groups:
  342.  
  343.       data                    system                action  
  344. ┌──────┼───────┐   ┌──────┬─────┴─────┬──────┐   ┌────┼──────┐
  345. │corpus│scratch│   │max=10│verbose=OFF│tree=b│   │quit│resume│
  346.  
  347.     a.  Data.
  348.  
  349.         - The corpus option runs SCROLLER.EXE. This program lists the
  350.           contents of the corpus file treecad.in and allows trees to be
  351.           imported. 
  352.  
  353.         - The scratch option presents two major Xbar structures (a CP
  354.           and an IP subtree) as initial experimental structures.
  355.  
  356.     b.  System. This group provides three buttons to change defaults.
  357.  
  358.         - max is the number of tree levels to be displayed. If it is set to
  359.           greater than 11 (and the nomode switch is not in force)
  360.           TreeCad makes an attempt to execute "mode 80,43", giving
  361.           access, in theory, to a 43 line screen. Actually, critical values
  362.           for max begin at around 15, when TreeCad runs out of memory
  363.           and therefore crashes. Nothing serious happens, control simply
  364.           returns to DOS or Windows.
  365.  
  366.         - verbose ON instructs the program to dump all debugging writes
  367.           to treecad.tmp. Under ordinary circumstances, it should remain
  368.           OFF.
  369.  
  370.         - tree toggles the display of the trees to either the baseline or
  371.           the *in-situ* format.
  372.  
  373.     c.  Action. This is either quit or resume. The main use of resume
  374.         is to reload previously edited structures after having reset one of
  375.         the system variables.
  376.  
  377. 2.6. The main menu consists of four groups. The show group highlights
  378. Xbar relationships. The ops group handles Xbar operations. The edit group
  379. contains a range of editing tools that allow various tree manipulations
  380. such as cutting and copying. The system group has options to undo, redo
  381. and save steps and also provides the quit button, which returns control to
  382. the initial screen. All options appear as idiosyncratic two or three letter
  383. strings:
  384.  
  385.        show         ops             edit             system 
  386. ┌──┬──┬─┴┬──┬──┐ ┌───┼───┐ ┌───┬───┬─┴─┬───┬───┐ ┌──┬──┼──┬──┐
  387. │hi│cc│mc│gv│Gv│ │adj│mov│ │cpy│cut│gen│mir│ren│ │un│Re│sv│qu│ 
  388.  
  389.  
  390.   Note that the following documentation of the individual options has
  391. been arranged so as to provide a step by step tutorial as well as a
  392. reference guide.
  393.  
  394. 2.7. Keyboard-based input. For users without a mouse, the following
  395. guidelines apply. 1) In order to execute a "click on option/button XYZ",
  396. type in *two* option letters and press ENTER or the space bar. 2) In order
  397. to "click a node", hit PgUp. Then, using the cursor keys, navigate the
  398. cursor to the beginning of a node label and press ENTER. Ctrl-Left and
  399. Ctrl-Right jump to the beginning of the next word on the left or on the
  400. right.
  401.  
  402.   Whenever literal keyboard input is requested, the space bar (as well as
  403. ENTER) serves as a terminator - this is very convenient for entering input
  404. strings with one hand only. However, it also means that you cannot enter
  405. strings containing spaces.
  406.  
  407. 2.8. If you want to follow the examples, start the program and set the
  408. max variable to four or five. Select data.scratch in the initial menu.
  409. TreeCad will present the following basic configuration:
  410.  
  411.      CP                 IP      
  412.   ┌──┴────┐         ┌───┴────┐   
  413.   │      Cbar       │       Ibar     
  414.   │     ┌─┴───┐     │     ┌──┴────┐   
  415.   │     │     │     │     │       VP 
  416.   │     │     │     │     │       │   
  417.   │     │     │     │     │      Vbar    
  418.   │     │     │     │     │     ┌─┴───┐   
  419.  CSp    C     IP    NP    I     V     NP 
  420.                                                       
  421. 2.9. The edit group.
  422.  
  423.     a.  *cut* deletes nodes and subtrees. Click on cut. The option will be
  424.         hilighted and the prompt "CUT<node>" appears. Click a terminal
  425.         node, and it will be pruned from the tree. After deleting an item,
  426.         cut remains hilighted and active. If you want to continue lopping
  427.         off branches just continue clicking other nodes you want
  428.         removed. Clicking a nonterminal node such as Cbar will delete
  429.         both the parent and the daughter nodes. Clicking a root node will
  430.         delete a whole tree.
  431.  
  432.           Use system.un (see 2.10.a, below) to undo steps, if necessary.
  433.         Of course, you can also always quit and restart from scratch.
  434.  
  435.           As an exercise, cut the scratch configuration down so that only
  436.         the CP tree remains.
  437.  
  438.     b.  ren (rename) affects only node text and does not alter any
  439.         structural relationships. Click on ren, then click on CP and
  440.         rename it to A. Continue traversing the tree changing CSp to B,
  441.         C to D and IP to E, eventually obtaining the following tree
  442.         (remember that you can undo steps if you make a mistake):
  443.  
  444. 1.   CP              2.   A
  445.   ┌──┴────┐            ┌──┴────┐
  446.   │      Cbar          │       C
  447.   │     ┌─┴───┐        │     ┌─┴───┐
  448.   │     │     │        │     │     │
  449.  CSp    C     IP       B     D     E
  450.  
  451.   RENAME<node> CP TO: A
  452.   RENAME<node> CSp TO: B
  453.   (etc.)
  454.  
  455.     c.  mir (mirror) exchanges peripheral daughter nodes. Click mir,
  456.         then A (B and C will change places):
  457.  
  458. 1.   A               2.      A
  459.   ┌──┴────┐              ┌───┴─────┐
  460.   │       C              C         │
  461.   │     ┌─┴───┐        ┌─┴───┐     │
  462.   │     │     │        │     │     │
  463.   B     D     E        D     E     B
  464.  
  465.   MIRROR<nonterminal>: A
  466.  
  467.         Click C (D and E will change places). Click C again (D and E will
  468.         revert to their original positions. Click A again to reconstitute the
  469.         original tree. Mir has no effect if activated on a terminal node or
  470.         a parent with only one daughter.
  471.  
  472.     d.  cpy (copy) copies trees, subtrees or terminals to a destination
  473.         node, replacing the destination. Click cpy and node C. Then click
  474.         B as the destination.
  475.  
  476. 1.   A               2.       A
  477.   ┌──┴────┐              ┌────┴──────┐
  478.   │       C              C           C
  479.   │     ┌─┴───┐        ┌─┴───┐     ┌─┴───┐
  480.   │     │     │        │     │     │     │
  481.   B     D     E        D     E     D     E
  482.  
  483.   COPY<node>: C TO: B
  484.  
  485.           Another major function of cpy is to create independent trees or
  486.         subtrees on the left or right periphery of the tree display space.
  487.         If the destination click occurs on an empty space in column 1, an
  488.         independent tree is created on the left. If the destination click
  489.         falls on an empty space in column 2-79, the copy is created on the
  490.         right.
  491.  
  492. 1.   A               2.  C            A
  493.   ┌──┴────┐            ┌─┴───┐     ┌──┴────┐
  494.   │       C            │     │     │       C
  495.   │     ┌─┴───┐        │     │     │     ┌─┴───┐
  496.   │     │     │        │     │     │     │     │
  497.   B     D     E        D     E     B     D     E
  498.  
  499.   COPY<node> C TO: [click at column 1, row 1]
  500.  
  501.     e.  gen (generate) is a tool for creating a variety of tree structures.
  502.         You begin by clicking a destination position which may be any
  503.         node of a given tree or an empty space in column 1 or an empty
  504.         space in column 2-79 (this is the identical convention as for cpy.)
  505.         Then you either specify a head of an Xbar structure or a list of
  506.         daughter nodes, or reconstitute an item from a previous cut.
  507.  
  508.           To obtain tree #2, below, activate gen, click node B and enter
  509.         "N". An NP subtree is generated and replaces B. *Any* letter X
  510.         entered at gen's "TO" prompt is understood to indicate the head
  511.         of an Xbar structure. Gen creates standard Xbar structures,
  512.         containing a maximal projection (XP), a specifier (XSp) and a
  513.         complement (YP).
  514.  
  515. 1.   A               2.           A           
  516.   ┌──┴────┐               ┌───────┴────────┐   
  517.   │       C               NP               C      
  518.   │     ┌─┴───┐        ┌──┴────┐         ┌─┴───┐   
  519.   │     │     │        │      Nbar       │     │   
  520.   │     │     │        │     ┌─┴───┐     │     │    
  521.   B     D     E       NSp    N     YP    D     E   
  522.  
  523.   GENERATE<node/pos> B TO<head/paste/list>: N
  524.  
  525.           At the TO prompt, the user can also enter a list of comma-
  526.         delimited node labels prefixed by the space character. The new
  527.         nodes will then become daughter nodes under (i.e., added to) the
  528.         destination node.
  529.  
  530. 1.   A                2.      A         
  531.   ┌──┴────┐              ┌────┴──────┐   
  532.   │       C              B           C      
  533.   │     ┌─┴───┐        ┌─┴───┐     ┌─┴───┐   
  534.   │     │     │        │     │     │     │   
  535.   B     D     E        xx    yy    D     E   
  536.  
  537.   GENERATE<node/pos> B TO<head/paste/list>: [space]xx,yy
  538.  
  539.  
  540.           If, at the <node/pos> prompt, an empty space is clicked either
  541.         in column 1 or column 2-79, an independent Xbar tree is
  542.         generated to the left or right of the current tree space:
  543.  
  544. 1.   A               2.   A                 VP      
  545.   ┌──┴────┐            ┌──┴────┐         ┌──┴────┐   
  546.   │       C            │       C         │      Vbar    
  547.   │     ┌─┴───┐        │     ┌─┴───┐     │     ┌─┴───┐   
  548.   │     │     │        │     │     │     │     │     │ 
  549.   B     D     E        B     D     E    VSp    V     YP
  550.  
  551.   GENERATE<node/pos>[click col. 60, row 1] TO<head/paste/list>: V
  552.             
  553.           Finally, a previously cut item may be resurrected in a different
  554.         location by entering space+ENTER, which inserts the current
  555.         contents of the paste buffer. In the following example, the C-
  556.         subtree was first cut and then pasted into the position of node B.
  557.  
  558. 1.   A               2.     A         
  559.   ┌──┴────┐                 │
  560.   │       C                 C 
  561.   │     ┌─┴───┐           ┌─┴───┐ 
  562.   │     │     │           │     │ 
  563.   B     D     E           D     E
  564.  
  565.   CUT<node>: C
  566.   GENERATE<node/pos> B TO<head/paste/list> [space][ENTER]
  567.  
  568. 2.10. The system group provides four options:
  569.  
  570.     a.  un (undo) undoes the last operation. A maximum of five steps
  571.         can be undone.
  572.  
  573.     b.  Re (redo) redoes a step previously undone. A maximum of three
  574.         steps can be saved in the redo buffer. Thus if you have just
  575.         undone five steps, you will only be able to return to the
  576.         antepenultimate stage.
  577.  
  578.     c.  The sv (save) option allows you to append the current tree to
  579.         treecad.in, making it permanently available to selection via the
  580.         data.corpus option of the intial screen.
  581.  
  582.     d.  qu (quit) returns control to the intial menu. The current tree can
  583.         be reloaded by clicking action.resume.
  584.  
  585. 2.11. The show group. With the exception of the general purpose option
  586. hi, this group mainly demonstrates Xbar-specific structural relations. The
  587. screens created in this group can be undone but not redone. Click on
  588. empty space if you want the hilighting removed.
  589.  
  590.     a.  hi (hilight). Use this option if you want to hilight specific nodes.
  591.         Clicking an already hilighted node resets the normal colour
  592.         attribute. (The option is not available for keyboard-based input.)
  593.  
  594.     b.  cc (c-command). Click cc and then any tree node. Different
  595.         colour attributes hilight the scope of the c-command relation, the
  596.         c-commanding node, the c-commanded nodes, and the nodes
  597.         excepted from c-command. The implementation follows the
  598.         operational definition given in Haegeman (1991:122):
  599.  
  600.             Start from node A and move upwards to the first branching
  601.             node. Every node down (except those dominated by, or
  602.             dominating, A) is a B c-commanded by A.
  603.  
  604.         In the following tree for the ungrammatical sentence *John will
  605.         invite herself* (treecad.in.9), node *John* was clicked. As a
  606.         result, all c-commanded nodes are hilighted on the screen
  607.         (italicized below).
  608.  
  609.        IP       
  610.   ┌────┴─────┐   
  611.   NP        Ibar      
  612.   │     ┌────┴─────┐   
  613.   │     I          VP 
  614.   │     │          │   
  615.   │     │         Vbar     
  616.   │     │      ┌───┴────┐   
  617.   │     │      V        NP   
  618.   │     │      │        │     
  619.   │     │      │        │      
  620.  John  will  invite  herself 
  621.  
  622.         Briefly, the sentence is ungrammatical because the anaphor
  623.         *herself* should have a c-commanding binder. *John* is the only
  624.         candidate, but *John* is excluded because of lacking gender
  625.         concord.
  626.  
  627.     c.  mc (m-command). This is similar to c-command except that the
  628.         scope is slightly different:
  629.  
  630.           Go from node A upwards to the first maximal projection. Every
  631.           node down from there is a B, m-commanded by A (except nodes
  632.           dominating A, or dominated by A). (Haegeman 1991:125)
  633.  
  634.         This configurational property is mainly needed for the definition
  635.         of the concept of government (for which see below). In the
  636.         following tree (treecad.in.11), node *will* has been clicked. The
  637.         italicized items indicate nodes m-commanded by *will*.
  638.  
  639.       IP      
  640.   ┌───┴────┐   
  641.   NP      Ibar     
  642.   │     ┌──┴────┐          [m-command relations not shown here]
  643.   │     I       VP 
  644.   │     │       │   
  645.   │     │      Vbar    
  646.   │     │     ┌─┴───┐   
  647.   │     │     V     NP 
  648.   │     │     │     │   
  649.   │     │     │     │    
  650.   He   will   do    it  
  651.  
  652.     d.  gv (government). Government is a crucial cofigurational
  653.         property underlying a number of syntactic phenomena. The
  654.         following definition (cp. Haegeman 1991:125) has been
  655.         implemented:
  656.  
  657.             1) A governs B if A m-commands B and no barrier intervenes
  658.             between A and B. 2) Maximal projections except infinitival IP
  659.             are barriers to government. 3) Governors are lexical nodes V,
  660.             N, P, A and tensed I.
  661.  
  662.         Consider *We want him to do it* (treecad.in.12), below. If you
  663.         click the V of *want*, the program hilights three nodes: the
  664.         embedded IP, the NP *him* and the VP *do it*.
  665.  
  666.       IP       
  667.   ┌───┴─────┐   
  668.   NP       Ibar      
  669.   │     ┌───┴─────┐
  670.   │     I         VP 
  671.   │     │         │   
  672.   │     │        Vbar      
  673.   │     │     ┌───┴─────┐   
  674.   │     │     V         *IP*      
  675.   │     │     │     ┌───┴────┐   
  676.   │     │     │    *NP*     Ibar     
  677.   │     │     │     │     ┌──┴────┐   
  678.   │     │     │     │     I      *VP* 
  679.   │     │     │     │     │       │   
  680.   │     │     │     │     │      Vbar    
  681.   │     │     │     │     │     ┌─┴───┐   
  682.   │     │     │     │     │     V     NP 
  683.   │     │     │     │     │     │     │   
  684.   we   +t1   want  him    to    do    it  
  685.  
  686.         The important thing is that *want* governs into the infinitival IP,
  687.         but not into the VP *do it*. As a consequence, *want* can
  688.         function as the case-assigner of *him*. An infinitival (non-tensed)
  689.         I is represented by either (I,to), as in the example above, or by
  690.         (I,+t0).
  691.  
  692.     e.  Gv (Passive government). This is basically the same as govern-
  693.         ment, except that you click a potential governee in order to find
  694.         its governor. As a counterpart to the ungrammatical sentence in
  695.         2.10.b, above, consider *John will like Mary's description of
  696.         herself* (treecad.in.15). This sentence is grammatical because it
  697.         obeys the Principle of Reflexive Binding, according to which
  698.  
  699.             A reflexive must be bound in the minimal domain containing
  700.             it, its governor and a subject (Haegeman 1991:202).
  701.  
  702.         Click Gv, then the NP *herself* to determine its governor: it is
  703.         the preposition *of*.
  704.  
  705.        IP       
  706.   ┌────┴─────┐   
  707.   NP        Ibar       
  708.   │     ┌────┴──────┐   
  709.   │     I           VP 
  710.   │     │           │   
  711.   │     │          Vbar        
  712.   │     │     ┌─────┴───────┐   
  713.   │     │     V             NP          
  714.   │     │     │      ┌──────┴────────┐   
  715.   │     │     │     NSp             Nbar       
  716.   │     │     │      │          ┌────┴──────┐   
  717.   │     │     │      NP         N           PP 
  718.   │     │     │      │          │           │   
  719.   │     │     │      │          │          Pbar     
  720.   │     │     │      │          │        ┌──┴────┐   
  721.   │     │     │      │          │       *P*      NP  
  722.   │     │     │      │          │        │       │    
  723.  John  will  like  Mary's  description   of   herself 
  724.  
  725.         The subtree that includes the reflexive, the governor and the NP
  726.         *Mary's* constitutes the minimal domain for reflexive binding
  727.         here (cp. Haegeman 1991:201).
  728.  
  729. 2.12. The ops group covers two types of Xbar specific operations:
  730. adjunction and movement.
  731.  
  732.     a.  adj (adjunction) joins two solitary trees either on a bar level or
  733.         on the level of a maximal projection. For the following example
  734.         of a "bar adjunction" click adj, then PP and then Xbar.
  735.  
  736. 1.   XP               PP        2.       XP        
  737.   ┌──┴────┐           │            ┌─────┴──────┐   
  738.   │      Xbar        Pbar          │           Xbar       
  739.   │     ┌─┴───┐     ┌─┴───┐        │       ┌────┴──────┐   
  740.   │     │     │     │     │        │      Xbar         PP 
  741.   │     │     │     │     │        │     ┌─┴───┐       │   
  742.   │     │     │     │     │        │     │     │      Pbar    
  743.   │     │     │     │     │        │     │     │     ┌─┴───┐   
  744.   │     │     │     │     │        │     │     │     │     │    
  745.  XSp    X     YP    P     YP      XSp    X     YP    P     YP 
  746.  
  747. ADJOIN<subtree>: PP TO<node>: Xbar
  748.  
  749.         If the subtree originally occurs on the left of the matrix tree it
  750.         will be adjoined as a left branch.
  751.  
  752.           As an exercise, you may want to try out possible bar
  753.         adjunctions for the ambiguous sentence *we saw the boy with the
  754.         telescope* (treecad.in.18):
  755.  
  756.       IP                            PP 
  757.   ┌───┴─────┐                       │   
  758.   NP       Ibar                    Pbar      
  759.   │     ┌───┴────┐              ┌───┴─────┐   
  760.   │     I        VP             P         NP      
  761.   │     │        │              │     ┌───┴────┐   
  762.   │     │       Vbar            │    NSp      Nbar
  763.   │     │     ┌──┴────┐         │     │        │   
  764.   │     │     V       NP        │     │        N    
  765.   │     │     │     ┌─┴───┐     │     │        │     
  766.   │     │     │    NSp   Nbar   │     │        │     
  767.   │     │     │     │     │     │     │        │      
  768.   │     │     │     │     N     │     │        │     
  769.   │     │     │     │     │     │     │        │      
  770.   we   +t2   saw   the   boy   with  the   telescope 
  771.  
  772.         Similarly, for an adjunction to a maximal projection, click adj,
  773.         then ZP and then XP:
  774.  
  775. 1.   XP             ZP      2.         XP         
  776.   ┌──┴────┐         │           ┌──────┴───────┐   
  777.   │      Xbar      Zbar         XP             ZP 
  778.   │     ┌─┴───┐     │        ┌──┴────┐         │   
  779.   │     │     │     │        │      Xbar      Zbar
  780.   │     │     │     │        │     ┌─┴───┐     │   
  781.   │     │     │     │        │     │     │     │   
  782.   │     │     │     │        │     │     │     │   
  783.   │     │     │     │        │     │     │     │    
  784.  XSp    X     YP    Z       XSp    X     YP    Z   
  785.  
  786. ADJOIN<subtree>: ZP TO<node>: XP
  787.  
  788.         For a concrete example, see 2.14 below. As with bar-adjunction,
  789.         if the subtree originates on the left of the matrix tree it will be
  790.         adjoined as a left branching adjunction.
  791.  
  792.     b.  mov (move) is both a general editing tool as well as an Xbar-
  793.         specific function. In its editing use, it moves a solitary tree to a
  794.         terminal node of a matrix tree, an operation which is equivalent
  795.         to combining a replacement copy and a cut. In configuration #1,
  796.         below, click mov, then the root node Z, then the terminal node
  797.         D:
  798.  
  799. 1.   A                Z          2.     A         
  800.   ┌──┴────┐         ┌─┴───┐        ┌────┴──────┐   
  801.   │       C         │     │        │           C        
  802.   │     ┌─┴───┐     │     │        │       ┌───┴─────┐   
  803.   │     │     │     │     │        │       Z         │   
  804.   │     │     │     │     │        │     ┌─┴───┐     │    
  805.   │     │     │     │     │        │     │     │     │   
  806.   │     │     │     │     │        │     │     │     │    
  807.   B     D     E     X     Y        B     X     Y     E  
  808.  
  809. MOVE<node>: Z TO<terminal>: D 
  810.  
  811.           However, the main function of mov is Xbar-specific: it moves
  812.         a constituent of a tree from one position to a suitable landing site,
  813.         leaving a trace. The first tree below (treecad.in.24) represents the
  814.         structure of the echo question *He did talk about what?* Click
  815.         mov, then *did,* then C and you will get the structure of another
  816.         echo question, *Did he talk about what?*
  817.  
  818. 1.    CP                                  2.       CP            
  819.   ┌───┴─────┐                                 ┌────┴─────┐   
  820.   │        Cbar                               │         Cbar      
  821.   │     ┌───┴─────┐                           │      ┌───┴─────┐   
  822.   │     │         IP                          │      │         IP       
  823.   │     │     ┌───┴─────┐                     │      │     ┌───┴─────┐   
  824.   │     │     NP       Ibar                   │      │     NP       Ibar       
  825.   │     │     │     ┌───┴─────┐               │      │     │     ┌───┴─────┐     
  826.   │     │     │     I         VP              │      │     │     I         VP    
  827.   │     │     │     │         │               │      │     │     │         │     
  828.   │     │     │     │        Vbar             │      │     │     │        Vbar     
  829.   │     │     │     │     ┌───┴────┐          │      │     │     │     ┌───┴────┐
  830.   │     │     │     │     V        PP         │      │     │     │     V        PP 
  831.   │     │     │     │     │        │          │      │     │     │     │        │  
  832.   │     │     │     │     │       Pbar        │      │     │     │     │       Pbar
  833.   │     │     │     │     │      ┌─┴───┐      │      │     │     │     │      ┌─┴───┐
  834.   │     │     │     │     │      P     NP     │      │     │     │     │      P     NP 
  835.   │     │     │     │     │      │     │      │      │     │     │     │      │     │  
  836.  CSp    C     he   did   talk  about  what   CSp   did#1   he    #1   talk  about  what
  837.  
  838.        MOVE<node>: did TO<terminal>: C
  839.  
  840.         As can be seen, the trace and the moved item are coindexed by
  841.         the notation #n.
  842.  
  843.           As an exercise, continue moving *what* to Csp, deriving *What
  844.         did he talk about?* Undo this step and derive the variant *About
  845.         what did he talk?* These steps illustrate the movement patterns
  846.         known as "preposition stranding" and "pied piping" (Haegeman
  847.         1991: 341).
  848.  
  849. 2.13. Exploring German main clause patterns. Contrary to the apparent
  850. structural resemblance between main clauses in English and German (*Mary
  851. likes John - Marie mag Jan*) it is now generally assumed that German VPs
  852. and IPs have a head-last configuration. This is indeed borne out by the
  853. fact that verb definitions in German are spontaneously presented by
  854. native speakers as (object-)object-verb paradigms, e.g. *ein Buch
  855. kaufen,* *jemandem etwas geben* etc. The following example (*daß Jan
  856. bestimmt morgen das Buch kaufen wird,* treecad.in.30) may serve to
  857. illustrate the fact that it is the German subordinate clause structure
  858. which is the most productive base structure for deriving all kinds of
  859. main clauses:
  860.  
  861.        CP        
  862.   ┌────┴──────┐   
  863.   │          Cbar        
  864.   │     ┌─────┴───────┐   
  865.   │     C             IP           
  866.   │     │     ┌───────┴─────────┐   
  867.   │     │     NP               Ibar             
  868.   │     │     │      ┌──────────┴────────────┐   
  869.   │     │     │     AdvP                    Ibar           
  870.   │     │     │      │             ┌─────────┴──────────┐   
  871.   │     │     │      │             VP                   I  
  872.   │     │     │      │             │                    │   
  873.   │     │     │      │            Vbar                  │   
  874.   │     │     │      │       ┌─────┴───────┐            │    
  875.   │     │     │      │      AdvP          Vbar          │   
  876.   │     │     │      │       │        ┌────┴─────┐      │    
  877.   │     │     │      │       │        NP         V      │   
  878.   │     │     │      │       │      ┌─┴───┐      │      │    
  879.  CSp   daß   Jan  bestimmt morgen  das   Buch  kaufen  wird 
  880.  
  881. As a first step, cut off *daß*, so that two landing sites are available,
  882. CSp for phrasal structures, and C for head-to-head movement. Next, mov
  883. *wird* to C to obtain *Wird Jan bestimmt morgen das Buch kaufen?* Next,
  884. mov *bestimmt* to CSp (*Bestimmt wird Jan morgen ...*). Undo this
  885. version. Move *morgen* to CSp: *Morgen wird Jan bestimmt ...*. Undo that
  886. and, finally, derive *Jan wird bestimmt morgen das Buch kaufen.*
  887.  
  888. 2.14. Another typical feature of Germanic languages is the phenomenon
  889. referred to as scrambling. Consider the derivation of *die Torte mit dem
  890. Messer schneiden* whose D-structure Haegeman (1991:540) takes to be
  891. (treecad.in.34):
  892.  
  893.                 VP 
  894.                 │   
  895.                Vbar            
  896.       ┌─────────┴───────────┐   
  897.       PP                   Vbar      
  898.       │                ┌────┴─────┐   
  899.      Pbar              NP         V    
  900.   ┌───┴────┐           │          │     
  901.   P        NP          │          │     
  902.   │        │           │          │     
  903.   │        │           │          │      
  904.  mit   dem Messer  die Torte  schneiden
  905.  
  906. It appears that there is no suitable landing site for moving *die Torte* to
  907. a place in front of *mit dem Messer*. However, landing sites may be
  908. created by adjunction. To do this in TreeCad, generate a solitary NP tree
  909. on the left of the VP. Adjoin this to the VP and cut it down to the
  910. following shape:
  911.  
  912.            VP
  913.   ┌────────┴──────────┐   
  914.   │                   VP 
  915.   │                   │   
  916.   │                  Vbar            
  917.   │         ┌─────────┴───────────┐   
  918.   │         PP                   Vbar      
  919.   │         │                ┌────┴─────┐   
  920.   │        Pbar              NP         V    
  921.   │     ┌───┴────┐           │          │     
  922.   │     P        NP          │          │     
  923.   │     │        │           │          │      
  924.   NP   mit   dem Messer  die Torte  schneiden 
  925.  
  926.  
  927. *Die Torte* may now be moved to the newly created landing site:
  928.  
  929.               VP            
  930.      ┌────────┴──────────┐   
  931.     NP#1                 VP 
  932.      │                   │   
  933.      │                  Vbar          
  934.      │           ┌───────┴─────────┐   
  935.      │           PP               Vbar     
  936.      │           │             ┌───┴────┐   
  937.      │          Pbar           │        V    
  938.      │       ┌───┴────┐        │        │     
  939.      │       P        NP       │        │     
  940.      │       │        │        │        │      
  941.  die Torte  mit   dem Messer   #1   schneiden
  942.  
  943. 2.15. Associative transfer rules map parametric (language specific)
  944. structural features of one language into those of another (see Rolshoven
  945. 1991 for a discussion of the concept). As shown above, an important
  946. parametric difference between English and German is the fact that the
  947. former is an SVO language in which the heads of IP and VP phrases come
  948. before their complements, whilst the latter is an SOV language with head-
  949. last characteristics. Consider again the German D-structure for *Jan wird
  950. morgen das Buch kaufen* (treecad.in.36):
  951.  
  952.         CP
  953.   ┌─────┴───────┐
  954.   │            Cbar
  955.   │     ┌───────┴────────┐
  956.   │     │                IP
  957.   │     │     ┌──────────┴───────────┐
  958.   │     │     NP                    Ibar
  959.   │     │     │            ┌─────────┴──────────┐
  960.   │     │     │            VP                   I
  961.   │     │     │            │                    │
  962.   │     │     │           Vbar                  │
  963.   │     │     │      ┌─────┴───────┐            │
  964.   │     │     │     AdvP          Vbar          │
  965.   │     │     │      │        ┌────┴─────┐      │
  966.   │     │     │      │        NP         V      │
  967.   │     │     │      │      ┌─┴───┐      │      │
  968.   │     │     │      │     NSp   Nbar    │      │
  969.   │     │     │      │      │     │      │      │
  970.  CSp    C    Jan   morgen  das   Buch  kaufen  wird
  971.  
  972. As it happens, the transfer rule that maps this structural configuration
  973. into English syntax is TreeCad's mirror operation. First, mirror the
  974. innermost Vbar to exchange the positions of verb and object. Then mirror
  975. the higher Vbar to move the adverb to the end of the VP. Finally, mirror
  976. the Ibar to move the auxiliary into pre-VP position.
  977.  
  978.        CP
  979.   ┌────┴─────┐
  980.   │         Cbar
  981.   │     ┌────┴──────┐
  982.   │     │           IP
  983.   │     │     ┌─────┴───────┐
  984.   │     │     NP           Ibar
  985.   │     │     │     ┌───────┴─────────┐
  986.   │     │     │     I                 VP
  987.   │     │     │     │                 │
  988.   │     │     │     │                Vbar
  989.   │     │     │     │          ┌──────┴────────┐
  990.   │     │     │     │         Vbar            AdvP
  991.   │     │     │     │      ┌───┴────┐          │
  992.   │     │     │     │      V        NP         │
  993.   │     │     │     │      │      ┌─┴───┐      │
  994.   │     │     │     │      │     NSp   Nbar    │
  995.   │     │     │     │      │      │     │      │
  996.  CSp    C    Jan   wird  kaufen  das   Buch  morgen
  997.             John   will   buy    the   book  tomorrow
  998.  
  999. As a result we get a structural scaffold for *John will buy the book
  1000. tomorrow.*
  1001.  
  1002.  
  1003.  
  1004.  
  1005. 3. FOX - A Frame-Oriented X-bar Parser
  1006.  
  1007. 3.1. Overview and uses. FOX processes simple English sentences and
  1008. attempts to represent their syntactic structure in the form of X-bar
  1009. phrase markers (Haegeman 1991). FOX is designed to run on DOS PCs with a
  1010. VGA/EGA screen and a hard disk, preferably on 80386 or higher platforms.
  1011. Operation with lesser processors is possible, but tends to be sluggish.
  1012. Technically, the parser is a left-to-right, bottom-up, multipass
  1013. nondeterministic parser. In the event of unresolvable lexical or
  1014. structural ambiguity it attempts to produce all possible outcomes by
  1015. backtracking. In its present form the parser can be used for the
  1016. following purposes:
  1017.  
  1018.     - as an interactive demonstration package illustrating the automatic
  1019.       processing of a variety of core grammar (mostly textbook) cases;
  1020.  
  1021.     - as an exploratory model for investigating lexical subcategorization
  1022.       and syntactic ambiguity and developing disambiguation strategies.
  1023.  
  1024. 3.2. Operation: DOS or Windows 3.1. FOX is not a proper Windows
  1025. program. However, under Windows 3.1 (386 mode) it can be run as a
  1026. "non-windows application in a window". Operation under Windows has a
  1027. number of advantages such as access to a smoothly moving mouse pointer,
  1028. resizeable system fonts, and the data exchange via the clipboard. Do the
  1029. following steps to set up FOX for Windows 3.1:
  1030.  
  1031.     a.  Copy the files Fox.ico and Fox.pif to the Windows 3.1 directory.
  1032.  
  1033.     b.  In Windows, start the PIF-Editor. Click *File/new*. Click *browse*
  1034.         to locate and select Fox.pif. The only entries requiring any change
  1035.         are the lines specifying the ICON directory. Adjust this to
  1036.         whatever directory you are using for your TREE&FOX files. Exit
  1037.         the PIF-Editor, saving the changes. Invoke the Program Manager's
  1038.         *File/new* menu and OK the box *program item*. Enter "Fox.pif"
  1039.         as *commandline* text. Click *change icon*. Disregard the error
  1040.         message and click OK. Use *browse* to locate Fox.ico. Select it
  1041.         and click OK. The FOX icon will appear among the Program
  1042.         Manager's other program icons, and Fox is ready to run.
  1043.  
  1044.     c.  Further hints:
  1045.  
  1046.         - There is an option to adjust font sizes in Fox's system menu
  1047.           field. The most suitable font sizes are 8x12 and 7x12.
  1048.  
  1049.         - The "edit" option lets you copy all or part of your Fox display
  1050.           to the clipboard.
  1051.  
  1052.     d.  FOX may crash when the sysvars.max variable is set to a value
  1053.         larger than 10. This may be owing to a lack of memory or the fact
  1054.         that no ANSI.SYS driver is specified in the CONFIG.SYS file. For
  1055.         large values of max (i.e., 11..15), make sure to resize the window
  1056.         and select a suitable font.
  1057.  
  1058. 3.3. Frame Orientation. The word "frame" in the parser's acronym goes
  1059. back to Marvin Minsky's conceptual model of human recognition
  1060. processes. His introductory definition of the key concepts is a good
  1061. starting point:
  1062.  
  1063.     We can think of a frame as a network of nodes and relations. The
  1064.     "top levels" of a frame are fixed, and represent things that are
  1065.     always true about the supposed situation. The lower levels have many
  1066.     *terminals* - "slots" that must be filled by specific instances or
  1067.     data. Each terminal can specify conditions its assignments must
  1068.     meet. (The assignments themselves are usually smaller "sub-frames.")
  1069.     (Minsky 1975:1)
  1070.  
  1071. 3.4. Linguistic Orientation. In keeping with Government and Binding (GB)
  1072. theory conventions, the FOX parser attempts to assign X-bar S-
  1073. structures which preserve their "underlying" D-structures. For its
  1074. initial syntactic frames, FOX depends on lexical "subcategorization
  1075. frames" (particularly those of verbs), and it capitalizes on the
  1076. "projection principle" which posits that all low-level syntactic
  1077. structure is based on lexical subcategorization (for details, see
  1078. Haegeman 1991). Whilst elements of "theta theory" have been encapsulated
  1079. in the sub- categorization frames of lexical entries, FOX is currently
  1080. not aware of any of the other supplementary modular subtheories (e.g.,
  1081. case and binding) normally treated within GB theory.
  1082.  
  1083. 3.5. Limitations. The parser's recognition capabilities are restricted to a
  1084. purely syntactic level. To the parser, all sentences are like "The mome
  1085. raths outgrabe" (from Lewis Carroll's "Jabberwocky"). Even for input
  1086. such as this, human recognizers have an immeasurable advantage over the
  1087. FOX parser because they assume intuitively that *mome *is an adjective,
  1088. that *raths* is the plural form of a noun, and that *outgrabe* is a past
  1089. tense of a verb *outgribe*. FOX must be given this information before it
  1090. is able to perform a successful parse (the sentence is listed as fox.in.29).
  1091.  
  1092.   At present, the FOX parser's grounding in realistic language data is still
  1093. extremely tenuous. Among the many features the parser does not know
  1094. how to handle are compounds, conjunctions, negation, gerunds, phrasal
  1095. verbs, tags and many other constructions. If you have inadvertently
  1096. entered a sentence containing such "unknown" elements, then a bogus
  1097. subcategorization category (such as X) may be used provisionally. (That
  1098. won't crash the parser.) Alternatively, enter an empty string to cancel the
  1099. processing of the sentence.
  1100.  
  1101. 3.6. Trees. The following tree represents the last stage in the parser's
  1102. processing of fox.in.56, *Which book will John give to Mary?*
  1103.  
  1104.             CP         
  1105.      ┌──────┴───────┐   
  1106.     CSp            Cbar      
  1107.      │         ┌────┴─────┐   
  1108.     NP#2       C          IP       
  1109.    ┌─┴───┐     │     ┌────┴─────┐   
  1110.   NSp   Nbar  I#1    NP        Ibar       
  1111.    │     │     │     │     ┌────┴──────┐   
  1112.    wh    N     │     │     I           VP 
  1113.    │     │     │     │     │           │   
  1114.    │     │     │     │     │          Vbar        
  1115.    │     │     │     │     │     ┌─────┼───────┐   
  1116.    │     │     │     │     │     V     NP      PP  
  1117.    │     │     │     │     │     │     │       │    
  1118.  which  book  will  John   #1   give   #2   to_Mary
  1119.  
  1120. Note the following details:
  1121.  
  1122.     a.  There are some slight terminological idiosyncrasies - in particular,
  1123.         "bars" are spelled out and the various conventional designations
  1124.         C'', C', Spec, CompSpec, SpecComp, Det etc. are not used. In the
  1125.         parser's notation, which is primarily motivated by ease of
  1126.         computational handling, any head category X has the projections
  1127.         X, Xbar and XP, and the specifier node is an XSp.
  1128.  
  1129.     b.  Movements and traces are indicated by indices #1, #2, etc.
  1130.  
  1131.     c.  The display depth of the tree shown is 8, and its virtual depth is
  1132.         10, which means that some of its lower nonterminal nodes are not
  1133.         represented (in this case, note the elliptical prep phrase). The
  1134.         display depth can be adjusted from 4 to around 15. From display
  1135.         depth 11 upwards, the parser switches to display mode 80,43 (this
  1136.         may not work for all screens). Normal screen mode (80,25) is
  1137.         restored after regular program termination.
  1138.  
  1139.     d.  Very observant readers will have noticed that the noun phrases
  1140.         *John* and *Mary* appear as plain NPs, whereas *book* is pro-
  1141.         jected fully. This is a subcategorizing option in the lexicon.
  1142.  
  1143. 3.7. Invocation. The ready-to-run version of the FOX parser is started by
  1144. typing iconx fox at the command prompt or by clicking the FOX icon in
  1145. Windows' Program Manager. The initial menu comprises four options:
  1146.  
  1147. ESC:quit  ENTER:corpus  SPACE:interactive mode  s:SYSVARS
  1148.  
  1149.     a.  Hit ENTER to view the corpus file fox.in. FOX runs the SCROLLER
  1150.         program to list this file; if this feature does not work, the parser
  1151.         can only be operated in interactive mode. Pick fox.in.1, *John will
  1152.         see Mary.* FOX looks up the words in its internal lexicon and
  1153.         presents the following initial ("given") structure:
  1154.  
  1155.   NP    I        IP               VP        NP 
  1156.   │     │     ┌──┴────┐           │         │  
  1157.   │     │     │      Ibar        Vbar       │  
  1158.   │     │     │     ┌─┴───┐     ┌─┴───┐     │  
  1159.   │     │     │     │     │     V     │     │  
  1160.   │     │     │     │     │     │     │     │  
  1161.  John  will  ?NP    ?I   ?VP   see   ?NP   Mary 
  1162.  
  1163.         The parser will now automatically continue with a series of more
  1164.         or less successful attempts to unify the material in a fully
  1165.         saturated single structural tree. Most intermediate results are
  1166.         obtained by procedures that "build" or "grab" or "trace" some-
  1167.         thing. Once the parse has run its course - either by bottoming out
  1168.         with a single tree structure or by getting stuck on a sequence of
  1169.         incompatible subtrees - press ENTER to return to the main menu.
  1170.         Repeat the process with some of the other sentences in the corpus
  1171.         file, if you like, or ESCAPE to exit the parser.
  1172.  
  1173.           Hint: Begin with the simple sentences in the corpus file in order
  1174.         to get an impression of the parser's operation. These sentences
  1175.         should all come out without any user intervention. Most of the
  1176.         sentences from fox.in.17 onwards contain material requiring
  1177.         interactive subcategorization (for which see below).
  1178.  
  1179.     b.  The SYSVARS option allows you to adapt the following variables
  1180.         to specific requirements and circumstances:
  1181.  
  1182.         - Verbose. Normally OFF (0). If toggled to 1 all debugging writes
  1183.           are echoed on the screen and written to the protocol file.
  1184.  
  1185.         - Max is the depth of the tree. If it exceeds 11, Fox attempts
  1186.           to execute "mode 80,43" to set a 43 line display. The safe upper
  1187.           limit for max lies around 15.
  1188.  
  1189.         - Steps. The initial setting is *automatic step-by-step*. Two other
  1190.           settings can be toggled: (1) *user-prompted step-by-step*; (0)
  1191.           *no intermediate steps, final outcome only*.
  1192.  
  1193.     c.  SPACE:interactive mode. The words listed in the lexicon are
  1194.         displayed on the screen, and the user is prompted to enter a
  1195.         sentence. There are a few simple ground rules:
  1196.  
  1197.         (1) Punctuation is allowed but will be ignored.
  1198.  
  1199.         (2) The parser is case sensitive but will test whether a lower case
  1200.             version of the first word in the sentence is listed in the
  1201.             lexicon.
  1202.  
  1203.         (3) There is no limit on the length of sentences, but the parser
  1204.             will trim the tree display to the 80 columns of the screen and
  1205.             has no horizontal scrolling facility. Output to the session
  1206.             protocol, however, is not truncated in this manner.
  1207.  
  1208.         (4) For words not listed in the lexicon, subcategorization frames
  1209.             will be requested from the user.
  1210.  
  1211. 3.8. Session protocol. There is no way of undoing or replaying steps, but
  1212. all trees generated are saved in a plain text file named fox.tmp. Note that
  1213. the session file is overlaid (i.e., deleted) at the beginning of each FOX
  1214. session. If any of the trees are to be saved, fox.tmp must be copied or
  1215. renamed before FOX is restarted. Be warned that, for long sessions,
  1216. fox.tmp can become quite large.
  1217.  
  1218. 3.9. The lexicon file. A lexicon has been provided in the file fox-lex
  1219. which can be edited with an ASCII editor. Its format is largely self-explan-
  1220. atory, but note the following details:
  1221.  
  1222.     a.  Since fox-lex is read when FOX is started and is kept in memory
  1223.         until program termination, its size must obviously remain within
  1224.         manageable proportions. (I am assuming there won't be much
  1225.         space left.)
  1226.  
  1227.     b.  Blank lines are ignored, likewise lines beginning with the hash
  1228.         character (#).
  1229.  
  1230.     c.  In the file dump shown below, the definition of the sub-
  1231.         categorizing frames begins in column 14. The word itself and its
  1232.         definition must be separated by at least two spaces.
  1233.  
  1234.     d.  Words can be entered in any order. 
  1235.  
  1236.  
  1237.  
  1238. ### FOX LEXICON ###
  1239.  
  1240. ### Auxiliaries
  1241. be           V ?NP_?NP?AP
  1242. am           +t1 be
  1243. are          +t1 be
  1244. is           +t1 be
  1245. was          +t2 be
  1246. were         +t2 be
  1247. being        +pt1 be
  1248. been         +pt2 be
  1249.  
  1250. do           V ?NP_?NP
  1251. does         +t1 do
  1252. did          +t2 do
  1253. doing        +pt1 do
  1254. done         +pt2 do
  1255.  
  1256. have         V ?NP_?NP
  1257. has          +t1 have
  1258. had          +t2+pt2 have
  1259. having       +pt1 have
  1260.  
  1261. to           P
  1262.  
  1263.  
  1264. ### Adjectives
  1265. able         A _%CP1
  1266. green        A
  1267. little       A
  1268. lucky        A _%CP1
  1269. wrong        A _%CP1
  1270.  
  1271. ### Complementizers
  1272. whether      C
  1273. that         C
  1274.  
  1275. ### Inflexionals
  1276. will         I
  1277. would        I
  1278.  
  1279. ### Noun-Specifiers
  1280. a            NSp
  1281. the          NSp
  1282.  
  1283. ### Nouns
  1284. boy          N
  1285. book         N _?of
  1286. Friday       N
  1287. he           NP
  1288. it           NP
  1289. John         NP
  1290. London       N
  1291. Mary         NP
  1292. man          N
  1293. student      N _?of
  1294. we           NP
  1295. you          NP
  1296. Xself        NP
  1297.  
  1298. ### wh-words
  1299. what         NPwh
  1300. who          NPwh
  1301. whom         NPwh
  1302. which        NSpwh
  1303. when         PPwh
  1304.  
  1305. ### Prepositions
  1306. about        P
  1307. by           P
  1308. in           P
  1309. of           P
  1310. on           P
  1311. without      P _%CP1
  1312.  
  1313. ### Verbs
  1314. believe      V ?NP_?NP?IP?CP
  1315. believes     +t1 believe
  1316. believed     +pt2 believe
  1317. buy          V ?NP_?NP,%NP
  1318. give         V ?NP_%NP,%NP?PP
  1319. gave         +t2 give
  1320. given        +pt2 give
  1321. hate         V ?NP_?NP
  1322. hated        +t2+pt2 hate
  1323. invite       V ?NP_?NP
  1324. know         V ?NP_?CP?NP
  1325. leave        V ?NP_%NP
  1326. like         V ?NP_?NP
  1327. meet         V ?NP_?NP
  1328. met          +t2 meet
  1329. persuade     V ?NP_?NP,?CP2
  1330. persuaded    +t2+pt2 persuade
  1331. promise      V ?NP_%NP,?NP?CP1
  1332. promised     +t2+pt2 promise
  1333. promising    +pt1+a promise
  1334. read         V ?NP_?NP?CP
  1335. reading      +pt1 read
  1336. relax        V ?NP_
  1337. relaxed      +t2 relax
  1338. resign       V ?NP_
  1339. resigned     +t2 resign
  1340. see          V ?NP_?NP?CP
  1341. saw          +t2 see
  1342. seeing       +pt1+a see
  1343. seen         +pt2 see
  1344. seem         V ?ISp_?IP
  1345. seemed       +t2 seem
  1346. talk         V ?NP_?about
  1347. want         V ?NP_?NP?IP?CP1
  1348. wonder       V ?NP_?CP1
  1349. wondered     +t2 wonder
  1350.  
  1351. ### Multiple Cats
  1352. big          N;A
  1353. sleep        V ?NP_;N
  1354.  
  1355.  
  1356. 3.10. Notes on subcategorization. 
  1357.  
  1358.     a.  Many lexical items can simply be subcategorized by specifying
  1359.         their grammatical category (cp. the entries for *green, that, boy,*
  1360.         etc.). In some cases, unnecessary X-bar structure may be
  1361.         suppressed by directly specifying the maximal projection (cp.
  1362.         *John, we*).
  1363.  
  1364.     b.  The notation N _?of in the case of *student* indicates that we
  1365.         want the parser to treat an *of*-PP following *student* as a
  1366.         complement.
  1367.  
  1368.     c.  Verbs are major structure determiners, and the parser will use the
  1369.         subcategorization information of each verb to hypothesize two
  1370.         major structures: a clausal IP frame and a verb phrase frame, the
  1371.         latter to be slotted into the IP frame at a later stage.
  1372.  
  1373.           For the parser, verbs are subcategorized according to the
  1374.         number and type of their external and internal arguments (their
  1375.         theta grid). The external argument of a verb is usually a subject
  1376.         noun phrase in the specifier position of an IP. Internal arguments
  1377.         are noun phrases, clausal phrases or prep phrases in the
  1378.         complement position of a verb phrase (cp. the entries for *resign,
  1379.         invite, talk*). Variant complement categories are simply
  1380.         concatenated (cp. *believe*).
  1381.  
  1382.     d.  As for inflected verb forms, +t1 denotes present tense, +t2 past
  1383.         tense, +pt1 the present participle, +pt2 the past participle. If a
  1384.         tensed or participle form can be used as an adjunct (as in *a
  1385.         promising boy*), specify +a.
  1386.  
  1387.     e.  Optional or implicit theta roles are experimentally flagged by the
  1388.         notation %XP (cp. *give*).
  1389.  
  1390.     f.  For items exerting subject control (*promise*), specify an ?XP1
  1391.         complememt. For object control items (*persuade*), specify ?XP2.
  1392.  
  1393.     g.  Note the special subcategorization for the raising verb *seem*.
  1394.  
  1395.     h.  Lexical ambiguity is indicated by concatenating several sub-
  1396.         categorization frames and separating them by a semicolon (cp.
  1397.         *big* and *sleep*). The parser's (inefficient) heuristic for dealing
  1398.         with multiple subcategorization is backtracking (see para 3.13).
  1399.  
  1400.     i.  Certain trivial subcategorization detail is handled automatically by
  1401.         the parser. For instance, it is not necessary to specify NP comple-
  1402.         ments for prepositions. Words ending in *-ly* are taken to be
  1403.         adverbs. Words ending in *'s* are processed as genitive case NPs.
  1404.         The parser can also usually recognize passives and proceed
  1405.         accordingly. Also, the parser's lookup procedure makes a decision
  1406.         on whether a word such as *hated* is a tensed form or the past
  1407.         participle of *hate* in the context given.
  1408.  
  1409. 3.11. Sample dialogue. The following is a typical interactive dialogue in
  1410. which the parser requests an additional subcategorization frame (user
  1411. input italicized):
  1412.  
  1413.     *John kissed Mary.*
  1414.     looking up:        John kissed Mary
  1415.     NO LEX ENTRY FOR:  kissed
  1416.        SUBCATEGORIZE:  *+t2+pt2 kiss*
  1417.     NO LEX ENTRY FOR:  kiss
  1418.        SUBCATEGORIZE:  *V ?NP_?NP*
  1419.  
  1420.   Interactively subcategorized items are added to the lexicon for the
  1421. duration of the session and will not be newly requested in subsequent
  1422. occurrences. Interactive additions to the lexicon are temporary, and on
  1423. leaving the program the added words and their definitions are forgotten.
  1424. There is no provision for interactively retracting or changing entries.
  1425.  
  1426. 3.12. Handling of adjuncts. The parser has no sophisticated heuristics
  1427. for placing adjuncts. Thus for the notorious *we saw the boy with the
  1428. telescope* (fox.in.20), the parser will just leave the PP stranded. On the
  1429. other hand, the parser can be given a cue as to where to attach the PP by
  1430. changing the input either to *we saw the boy (Nbar,?PP) with the
  1431. telescope* or to *we saw the boy (Vbar,?PP) with the telescope.* See the
  1432. corpus file for a number of similar cases.
  1433.  
  1434. 3.13. Lexical ambiguity. The parser's processing of ambiguous strings
  1435. can be illustrated by letting it parse fox.in.27, *the big sleep*. As shown
  1436. in the dump of fox-lex, *big* has been subcategorized as N;A (i.e. both
  1437. for a noun and and adjective), and *sleep* has been subcategorized V
  1438. ?NP_;N, i.e., both as an intransitive verb and a noun. Four outcomes are
  1439. possible, two of which, namely *big1+sleep1* and *big2+sleep2*,
  1440. succeed, whilst the other two, *big1+sleep2* and *big2+sleep1*, fail. To
  1441. observe the parsing strategy in detail, set the steps SYSVAR to 1.
  1442.  
  1443.  
  1444.  
  1445.  
  1446. 4. References
  1447.  
  1448. Carroll, Lewis. Through the Looking-Glass. In The Annotated Alice, ed.
  1449.   Martin Gardner. Harmondsworth: Penguin, 1974 [1896].
  1450.  
  1451. Fanselow, Gisbert/Sascha W. Felix. 1990. Die Rektions- und Bindungs-
  1452.   theorie. Tübingen: Francke.
  1453.  
  1454. Griswold, Ralph E./Madge T. Griswold. 1990. The ICON Programming
  1455.   Language: Second Edition. Englewood Cliffs: Prentice Hall.
  1456.  
  1457. Griswold, Ralph. 1992. Version 8.5 of Icon for MS-DOS 386/486
  1458.   Platforms. The U. of Arizona Icon Project, Doc. IPD184. [See note on
  1459.   ICON, below.]
  1460.  
  1461. Haegeman, Liliane. 1991. Introduction to Government and Binding Theory.
  1462.   Cambridge, Mass.: Blackwell.
  1463.  
  1464. Minsky, Marvin. 1975. "A Framework for Representing Knowledge".
  1465.   Frame conceptions and text understanding, ed. Dieter Metzing. Berlin:
  1466.   deGruyter.
  1467.  
  1468. Radford, Andrew. 1988. Transformational Grammar: A First Course.
  1469.   Cambridge U.P.
  1470.  
  1471. Rolshoven, Jürgen. 1991. "GB und sprachliche Informationsverarbeitung
  1472.   mit LPS". Romanische Computerlinguistik: Theorien und Implemen-
  1473.   tationen, ed. J. Rolshoven and D. Seelbach. Tübingen: Niemeyer.
  1474.  
  1475.  
  1476. Note on ICON: All main program modules in TREE & FOX were implemented
  1477. using the sophisticated features offered by the ICON programming
  1478. language. Griswold & Griswold (1990) is the primary reference text. The
  1479. University of Arizona publishes a monthly Icon Newsletter as well as a
  1480. bi-monthly technical report called The Icon Analyst. Icon has been
  1481. ported to practically all types of platforms and operating systems. For
  1482. subscription and ordering details, contact The Icon Project, Dept. of
  1483. Computer Science, Gould-Simpson Building, The University of Arizona,
  1484. Tucson AZ 85721, U.S.A.
  1485.  
  1486.