text:
Method for generating and displaying tree structures in a limited display area
There is disclosed a method for constructing and displaying tree structures with automated data processing equipment. A focused view of a portion of the tree is provided to enable an operator to perform editing and evaluating functions on the tree. The focused view presents a view of this portion of the tree structure with a geometry different than what would be used if the entire structure were to be portrayed. This provides a view with sufficient resolution to be highly readable. In the preferred embodiment, the focused view is comprised of a focus node of the tree, its parent node along with the branch connecting the parent node and the focus node, the sibling branches of the connecting branch, all successor nodes of the focus node, and the branches connecting the successor nodes to the focus node.
Latest Texas Instruments Incorporated Patents:
1. Field of the Invention
This invention relates to the interactive generation and display of information, and more specifically to the interactive generation and display of tree structures.
2. Description of the Related Art
In recent times much effort has been devoted to the development and refinement of techniques for making decisions in complex environments. The arenas in which such decisions must be made are extremely diverse and can include the choice from a wide variety of options of personal investment vehicles, or the corporate selection of the optimum course of action in terms of the allocation of corporate resources. One mechanism which has found wide acceptance in the formulation of such decisions is the so called "decision tree".
Briefly, decision trees typically include a variety of nodes which take one of three forms. A node may be a decision node representing the need to make a choice between two or more possible courses of action. Alternatively, a node may be a chance node indicative of a point in the tree where one of two or more events will occur, but where the information about which event will actually occur is available only in terms of a probability. Finally a node may be an end node which represents the final point in a possible chain of decisions and random events.
The various nodes are connected by tree branches. Branches originating at a decision node each represent the selection of one of the several courses of action that are possible at the node. In many cases a particular choice will have a predictable economic effect. If the decision to be made for example is whether to add plant capacity or to add a third shift of factory workers, both the cost of expansion and the cost of adding employees can be predicted. It is common in tree structures to associate these costs with the particular branch to which they correspond.
Similarly, branches originating at chance nodes each represent one of the possible events that can occur at the node. In this case the probabilities that the decision maker thinks are appropriate for each of these events are associated with the corresponding branches.
Finally, each end node will have an associated economic effect. In the case of a profit maximization analysis, for example, this will represent the profit that is to be expected for a particular sequence of decisions and events that correspond to the path through the tree leading to the particular end node in question. Once the tree has been created, various statistical techniques can be used to evaluate the economic effects and the probabilities of the various paths through the tree and to select the optimum path from a statistical point of view. The value of the tree lies in the fact that it provides an ordered framework for assessing the impact on the final result of varying one or more of the a priori assumptions as to the probabilities at a chance node, or the a priori estimates of the various economic parameters.
More recently there have been attempts to provide a decision tree capability on various types of automatic data processing equipment. The computational capability of the machines coupled with convenient display capability, such as by means of a cathode ray tube (CRT), can result in a flexible means for decision tree analysis. One problem in this regard, however, stems from the size of most practical decision tree structures. If the tree is to be displayed on paper this does not create major problems. If the tree, however, is to be displayed on the limited dimensions of a CRT, a tradeoff must be made between the desire to display the entire tree to provide perspective, and the need to display local parts of the tree with sufficient size to be readily interpretable by the operator. In the past, attempts have been made to resolve this problem by displaying a magnified version of a local portion of the tree. An example of this is the Harvard Project Manager which is available from Harvard Software Inc., 521 Great Road, Littleton Road, Mass. This approach may not always provide a desirable result since decision trees tend to be expanding structures with a very thin branch density near the base of the tree and a dense branch structure at the top or end. Accordingly, a display magnification which is appropriate for one portion of the tree may not provide sufficient information at other portions of the tree. This same difficulty may be encountered in other tree structures such as PERT charts and knowledge representations in the case of expert systems.
By means of this invention there is provided an improved method and system for creating and analyzing tree structures which is particularly well adapted for use in connection with automatic data processing equipment. In the preferred embodiment, the tree structure is displayed by means of a CRT associated with the data processing equipment. As the tree is created, portions are displayed to the operator on the CRT. Again, in the preferred embodiment the portion which is displayed includes the node which is the center of interest for the moment (hereinafter referred to as the "focus" node). The display also shows the branch leading to the focus node along with the origin node for that branch, the other branches originating at that origin node, and the output branches originating at the focus node along with their termination node. By this means the operator is provided with a local display having sufficient information to allow him to relate the focus node to its surroundings in the decision tree. Most importantly, the format of this effective display is provided irrespective of the location of the focus node in the decision tree.
To further assist in relating the focus node to the remainder of the tree structure, the preferred embodiment provides the option of displaying a scaled down portion of the entire tree in a small part of the screen that is reserved for that purpose. In the case where a color display is available, the location of the focus node in the display of the entire tree is indicated by a distinctive color. In the case of a monochrome display this location is indicated by a distinctive shading. In the event that the entire tree is too large to fit within the bounds of the small part of the screen reserved for it, the portion centered around the focus node is displayed. This reduced size view of the entire tree or substantial portion thereof will be referred to as the "macro view".
It is therefore an object of the invention to provide a method of displaying a portion of a tree structure wherein the portion is focused or geometrically scaled in a manner different than would be the case if the entire tree were to be displayed.
It is another object of the invention to provide a method of displaying a portion of a tree structure wherein said portion consists of a focus node, its parent node and the incident branch connecting these two nodes along with the siblings of this incident branch, and the successor nodes of the focus node along with the branches connecting the focus node to the successor nodes.
It is yet a further object of the invention to provide a method of creating and displaying a tree structure wherein an operator is prompted to define the set of nodes and branches making up the tree structure, and wherein a portion of the tree structure is displayed with a geometry different than that which would be used if the entire tree were to be displayed.
Other objects and advantages of the present invention will be apparent from the following detailed specification, when read in conjunction with the accompanying drawings which illustrate the preferred embodiment of the invention.
FIG. 1 is a perspective view of a personal computer system;
FIG. 1a shows the cursor key arrangement of a personal computer;
FIG. 2 illustrates the windows making up the display screen of a cathode ray tube display;
FIGS. 3a-3f illustrate various stages in the construction of a decision tree.
FIG. 4 shows a macro view of a decision tree.
FIG. 5 shows a prior art display.
FIG. 6 shows a display in accordance with the principles of the present invention.
FIG. 7 shows the display of a probability distribution.
FIG. 8 is a flow chart for the display function.
FIG 9 is a flow chart for the store tree function.
FIG. 10 is a flow chart for the define node function.
FIGS. 11a-11d comprise a flow chart for the cursor movement function.
FIG. 12 is a flow chart for the add branch function.
FIG. 13 is a flow chart for the copy subtree function.
FIG. 14 is a flow chart for the macro view function.
One system that adapts well to implementation of the invention is the personal computer system illustrated in FIG. 1. Typically, such systems include a central processing unit (CPU) 10 which contains the arithmetic processor and certain of the memory units of the system. The CPU may include one or more disk drives 12 which accept floppy disks as a medium for providing bulk data and instructions to and from the CPU. A real time display of information generated by CPU 10 is provided by means of display unit 16 which communicates with the CPU by means of cable 26. Display unit 16 typically uses a cathode ray tube (CRT) 18 as the display medium. Operator control of the CPU operation is effected by means of a keyboard unit 14 which communicates with the CPU by means of cable 24. As is well known, keyboard unit 14 typically includes a typewriter style alphanumeric keypad as well as a variety of control keys. As illustrated in FIG. 1a, the control keys include a set of cursor control keys by means of which the cursor of CRT 18 can be caused to move in any of four directions. As is well known in the art, movement of the cursor could alternatively be effected by means of a hand driven "mouse". Finally a printer unit 20 provides a hard copy 22 of certain results, usually at the option of the operator. Printer unit 22, which communicates with CPU 10 by means of cable 28, may use any of various types of printheads including daisy wheel, wire matrix, inkjet, and thermal.
In the preferred embodiment of the invention, control is provided by instructions stored on one or more floppy disks as read by disk drives 12. Of course, alternative memory mechanisms are available, a common one being the so called Winchester disk. An operator interacts with the system via keyboard unit 14 to build and evaluate the decision tree. The tree, as it is being constructed or evaluated, is displayed by means of the CRT 18.
In this way there is provided a method for interaction with the decision tree, creating and modifying the tree structure graphically on the CRT. A large percentage of the input is done by "pointing" at the desired location in the decision tree or in a function menu. As will further be described below this pointing is accomplished via the cursor keys.
As shown in FIG. 2, the CRT display is comprised of four windows. When input is required from the user to proceed, the corresponding window contains text (usually one word) in reverse video. This might be a menu item, an operation indicator like SELECT or ACTIVE, or a message indicator like NOTE. The graphical display window 30 is a large window on the left hand side of the CRT. A "focused" view of the decision tree is displayed in this window. The word "focused" is used because the geometry of the portion of the tree displayed in this window is modified from that which would be used if the entire tree were to be displayed. In the preferred embodiment, only a fixed context of the decision tree structure is displayed at any instant in time. Three levels of decision tree nodes and the included branches are displayed, annotated with descriptions, values, and probabilities (where appropriate).
The function display window 32 in the upper right hand corner of the CRT can be used for several functions, one of these being a macro display of the entire tree, or as large a portion thereof as can be displayed within the limited confines of the window area.
The function menu window 34 in the lower right hand side of the CRT is used to enable the operator to select one of a plurality of functions. Menus of available functions are displayed here. Some functions require the user to make additional selections or to input data from the keyboard. These selections and input are also done in this window.
Finally, the narrow message window 38 stretching across the bottom of the CRT provides two functions. First, expanded explanations for functions currently selected by pointing in the function menu are given here. Secondly, functions which perform calculations display an appropriate message here during the computation.
The current or active decision tree is displayed in the graphical display window 30. The nodes of the tree are displayed in symbolic fashion with nodes representing a decision being shown as shaded squares, chance points as shaded circles, and end points with no symbol. An open circle superimposed on an open square indicates that a branch has been added to the tree, but the corresponding node type has not yet been defined. Alternative or outcome descriptions, probabilities, and values are displayed along the branches. The method of constructing a decision tree will now be described.
When the process is initiated, the first of several menus is displayed in function menu window 34. The options available in this File Menu are listed in Table 1.
TABLE I ______________________________________ File Menu ______________________________________ Load Tree Delete File Save Tree Save Subtree Edit Menu Eval Menu Exit ______________________________________
In the display, the function to be selected is highlighted by being shown in the reverse video mode. The operator uses the cursor keys to "point" at the desired function, that is to cause the desired function to be so highlighted. As will be the case throughout this description, the choice is entered by depression of the return key.
If there are any existing tree structures stored in disk memory, the load tree function causes the names of these trees to be displayed in function display window 32. The operator then points at the desired tree name and enters his selection. The initial portion of the selected tree is then displayed in graphical display window 30. At this point the operator may select either the edit menu function if he wishes to alter the existing tree, or the eval menu function if he wishes to evaluate the existing tree. Alternatively, if he wishes to construct a new tree, he will immediately select the edit menu function. Table 2 shows the functions available in the Edit Menu which appears in window 34 at this point. It will be noted that certain "functions" such as file menu, edit menu, and eval menu which appear in the menus are actually calls to another menu.
TABLE 2 ______________________________________ Edit Menu ______________________________________ New Tree Edit Values Define Node Macro View Add Branch Exit Add Subtree Eval Menu Copy Subtree File Menu Delete Subtree ______________________________________
Creation of the new tree is initiated by selection of the new tree function which causes an open circle superimposed by an open square with an incident branch to appear in the middle of window 30. Selection of the define node function prompts the operator to define the node as a decision, chance, or end node. If he selects decision node, he is prompted to name the branch that departs from the node. He then returns to the edit menu by selecting an "exit menu" function. At this point the display will be as shown in FIG. 3a (it is assumed that the name given to this branch was "BRANCH 1"). In the display a branch and/or node is designated as active by virtue of having a unique color if a color monitor is used or by intensity modulation in the case of a monochrome display. In FIG. 3, active nodes will be shown as solid squares or circles as opposed to cross hatching for the other nodes. Similarly, active branches will be shown as solid lines in contrast to dashed lines for the other branches.
Generally at this point the operator will wish to add at least one more branch emanating from the initial decision node. This is accomplished by entering the add branch function. At this point, and whenever an add branch function or define node function is entered, the word SELECT flashes at the lower right hand corner of graphical display window 30 requesting the operator to point to the branch or node to be processed. In the case of an add branch function, the cursor keys are used to highlight the node from which the new branch is to emanate and this choice is entered. In the case of the define node function, the cursor is used to highlight the node to be defined and the choice is entered. Upon choosing the initial decision node in the add branch mode, an additional branch terminating in an undefined node and emanating from the decision node appears on the display. As before, the operator is prompted to name the branch and returns to the edit menu via the exit menu function. At this point the display appears as shown in FIG. 3b. Throughout this description, the names BRANCH 1, CHANCE 2. etc. are selected arbitrarily, and would normally be replaced by names having relevance to the particular situation being modelled.
Next the operator may wish to define the nature of the nodes located at the ends of the two branches. This is accomplished through use of the define node function. Assume for the purposes of this description that after choosing either of the paths represented by the two branches, a chance event will occur. By that is meant an event having two or more outcomes which can only be predicted in a probabilistic sense. The operator selects a node at the end of one of the branches with the cursor keys and is then prompted to enter his choice of decision, chance, or end node. Upon choosing chance, the node becomes a filled circle and a new branch, emanating from this chance node and terminating in a new undefined node appears in the display. The new branch represents a possible outcome of the chance event. The operator is prompted to assign a descriptive name to the outcome and then to enter his estimate of the probability that the outcome will occur. After returning to the edit menu via the exit menu function, the display appears as shown in FIG. 3c. Here it is seen that the estimate of the probability that the outcome CHANCE 1 will occur is 0.5.
The add branch function is used at this point to add two more branches, each representative of an additional possible outcome of the change event. In each case, since the new branch emanates from a chance node as opposed to a decision node, the operator is prompted to enter both a descriptive name and a probability of occurrence. At the conclusion of this process, the display appears as shown in FIG. 3d.
At this point, the tree includes three undefined nodes. The define node function is entered and the cursor keys used to select the node at the termination of the CHANCE 1 branch. This node represents the end of one particular path through the tree. While practical trees are normally much more complex than the illustration shown here, and any path through a tree would normally include a large number of branches located end to end, the simple case shown here with just two branches is sufficient to illustrate the principles of the invention. In this example, the operator would identify the selected node as an end node. Since this node is an end node, the node marker is removed from the display, and the operator is prompted to enter a value. This value represents the economic consequence of following the particular path through the tree leading to the end node in question. For example, if the decision represented by the BRANCH 2 branch is elected and the outcome at the chance node should turn out to be that represented by the CHANCE 1 branch, then the profit to the decision maker might be $10,000. If such is the case, the operator would enter 10,000 as the value for the end node at the conclusion of this path. Upon return to the edit menu via the exit menu function, the value 10,000 appears beside the 0.5 probability of the CHANCE 1 branch. The operator would then use the define node function to define the remaining two undefined nodes as end nodes, each with its estimated value. At the conclusion of these steps the display appears as seen in FIG. 3e. While the values in this example have been shown as profit values, it may be more appropriate in some cases to use cost as an alternative.
The procedures described above may be used to add tree structure to the end of BRANCH 1 with a possible resultant structure such as represented in FIG. 3f. When this is done, all paths of the tree terminate in end nodes and the structure is complete.
FIG. 3f may be used to illustrate the general nature of the display which is provided in graphical display window 30. The node appearing in the center of the display will be referred to as the focus node. The display includes all branches emanating from the focus node and the nodes at the ends of these branches, it being understood that end nodes are not expressly shown. The branches comprising the set of all branches emanating from a node will be referred to as siblings of each other. The display also includes the branch leading to the focus node, its origin node, and its siblings. As the focus node is varied by means of an operator using the cursor keys, this same general display format is used irrespective of where in the tree the focus node happens to be located. The display shown in graphical display window 30 is the preferred embodiment of a focused display.
At any time during the construction of a tree, the macro view function may be used to invoke a miniaturized view of the entire tree structure in function display window 32. One such macro view 50 is shown in FIG. 4. In the macro view, the current focus node is highlighted so as to facilitate relating the focused display to the entire tree as shown in the macro view. In this way, while the focused view provides a picture of only a portion of the entire tree, it can be viewed in context by comparison with the macro view. In some cases, the tree may be so large that the entire tree cannot be shown within the confines of function display window 32. In such an instance, the macro view shows as large a portion of the tree as the display area permits centered around the focus node of the focused display.
The tree structure shown in FIG. 4 may be used to illustrate an advantage of the present invention. In the prior art, if it was desired to view a larger version of a portion of a complete tree structure, the practice was simply to magnify that portion without modification and to display it. Thus FIG. 5 illustrates this prior art technique, showing a magnified version of the portion of the tree structure centered about focus node 52 of FIG. 4. The size of FIG. 5 has been selected to approximate the area available in graphical display window 30 on a typical CRT. Only those nodes and branches that are included in the focused display centered around focus node 52 in accordance with the principles of this invention are included in the display of FIG. 5. In contrast, FIG. 6 shows the same portion of the complete tree in a portion of graphical display window 30 as it appears in the focused display of the present invention. As a result of "focusing" or varying the geometry of the tree portion to be shown in graphical display window 30, there is provided a display having better resolution than that available in accordance with prior art methods. As the total tree structure becomes larger, as is the case in most practical decision tree structures, the difference becomes even more noticeable, and the point is rapidly reached where any magnification in accordance the prior art methods becomes impossible because of the size limitations of the display area.
The file menu includes several functions which have not yet been discussed. The save tree function allows retention of a decision tree on a non-volatile memory such as a disk. When this function is selected, the function menu window is cleared and a blinking cursor appears. A file name is assigned by the operator to the decision tree to be saved by typing the name at the cursor and depressing the return key. The tree is then entered on the disk for later use. The save subtree function performs a similar task for a portion of a tree. It is required in this case to identify the subtree by pointing at its root node.
The delete file function permits deletion of a tree or subtree previously entered onto the disk. The exit function in any of the function menus results in termination of the process. The eval menu function calls up the evalution menu which will be discussed subsequently.
Other functions in the edit menu include the add subtree function. This permits the addition of a previously saved subtree to the present decision tree. In this case it is necessary to point at the root node location for the subtree. After pointing at the root node location, and entering the add subtree function the operator is prompted to enter the file name of the desired subtree. The subtree then is added with the display centered at the root node for the subtree.
The copy subtree function permits copying an existing subtree in the current tree to another point in the tree. It is particularly helpful when the same subtree structure will appear at several places within the tree. The subtree to be copied is first pointed, then the copy subtree function entered, and finally the operator is prompted to point the location of the root node to which the subtree is to be added. The subtree then is copied to this new location. Using a similar procedure, the delete subtree function permits deletion of an unwanted portion of a tree.
Finally, the edit values function permits modification of values in the tree. When this function is invoked, the operator is first prompted to point to the node where changes are to be made. A menu of the values that can be changed then appears, and after entry of the new values, the tree is so modified.
Once a tree has been loaded from memory by means of the load tree function, or a tree has been completed by means of the edit menu operations, the operator will wish to evaluate the tree. The eval menu can be called up from either the file menu or the edit menu. The functions available in this menu are shown in Table 3.
TABLE 3 ______________________________________ Eval Menu ______________________________________ Selected Value Exit Prob Dist Edit Menu Edit Values File Menu Macro View ______________________________________
The expected value function performs the classical decision tree evaluation or "rollback" to determine the expected value of the decision. When expected value is selected, a menu with the options "maximize" or "minimize" appears. The appropriate one of these is selected in dependence on whether the tree has been set in terms of profits or costs. The best decision at each decision node of the tree is then indicated by highlighting the branch corresponding to that decision. Also, at each decision node the expected value for the decision is shown. In the tree of FIG. 3, the expected value that would be shown with BRANCH 1 is $14,600, while the value for BRANCH 2 is $14,100. As a result, BRANCH 1 would be highlighted as the best choice.
Once the expected value analysis has been completed, the prob dist function can be used to examine the distribution of discrete outcomes of a decision. The prob dist function may be invoked at any point in the tree, and includes all individual outcomes which may occur assuming that the best alternative is selected at each decision point. When this function is selected, it is first necessary to point at the node for which the probability distribution is desired. The operator then selects from a menu containing the choices of cumulative or non-cumulative distribution. The operator is also permitted to specify the number of intervals that will appear in the display, the default number being ten. FIG. 7 shows the non-cumulative distribution for the root node of the tree shown in FIG. 3. This display appears in function display window 34. While this distribution could be obtained by inspection of the tree, such is not the case in the practical case where complex tree structures are involved.
The foregoing has been a functional description of the process. The following provides a detailed description of the details of the system which accomplishes this process.
Implementation of the system relies on the concept of a node data structure, that is a list of information for each node in the tree. The information includes data about the node itself and relates the node to other nodes in the tree structure. Table 4 summarizes the information that appears in the node data structure.
TABLE 4 ______________________________________ Node Data Structure ______________________________________ Node Number Node type (decision chance, end?) Annotation related to the node Probability if the parent node of this node is a chance node Value in the case of an end node Identity of the parent node to this node Information for identifying successor nodes to this node ______________________________________
The method provided by the invention comprises the sequential execution of various functions such as load tree, define node, add branch, each of which uses the information in the node data structures. Selection of a particular function from any menu that is displayed during use of the system is accomplished by means of an interface for menu point selection. Such interfaces are well known and require no further description here. With reference first to the file menu, when the load tree function is selected, a menu showing the names of the existing tree structure menus is displayed. The operator then selects one of these to activate loading of the tree. The system them acquires each of the node data structures from the disk memory for this tree and enters them into fast access memory within the computer for subsequent use by the various functional routines. At this time, the root node of the tree is considered to be the focus node and the portion of the tree including the root is displayed.
FIG. 8 shows a flow diagram of the display routine that is employed each time the display is to be changed during use of the system. The routine is entered at block 60. At test block 62 the identities of the focus node and current node are compared and if there is equivalence, then the focus node along with its incident branch are drawn in highlighted form (processing block 64). If there is no equivalence, then the focus node and its incident branch are drawn in normal form at processing block 66. The "current node" is the node that has been selected by the operator to be the locus of some current operation in implementation of a function. For example, in an add branch operation the operator would have designated the node to which the new branch is to be added, and the node at the end of this new branch becomes the current node. As noted above, in the case of a load tree operation, the root node is automatically designated as the focus node.
At processing block 68 the number and spacing of the successor nodes to the focus node is determined. If there is an odd number of successor nodes, the center node of this group will be displayed on the same line as the focus node and half of the remaining nodes will be shown above this line with the other half appearing below this line. If there is an even number of successor nodes half will be displayed above and the other half below the line having the focus node.
If one of the successor nodes has not yet been displayed at test blocki 70, test 72 block determines whether this node is the current node. If not, this node, its incident branch, and any annotation associated with the node is displayed in normal form at blocks 76, 78, and 80. If, however, this node is the current node, then processing block 74 causes this portion of the display to be shown in highlighted form. Generating the display of the successor nodes continues until test block 70 determines that all of the successor nodes have been drawn.
At test block 82 the focus node is checked to see if it has a parent node, and if so test block 84 is to determine if this parent node is the current node. If not proecessing block 88 draws the parent node in normal form, whereas in cases when the parent node is the current node, processing block causes the parent node to be drawn in highlighted form. Next the successor nodes to the parent node are determined at processing block 90 and processing block 92 identifies which of these are to be displayed above and which below the line containing the focus node and its parent node. At test block 94 the test determines whether all branches emanating from the parent node have been drawn. If a branch remains to be drawn, it is compared to the current branch at test block 96 and the branch with its annotation is drawn in normal or highlighted form at processing blocks 98, 100, and 102 in conformance to the result of the test. Note that the successor nodes to the parent of the focus node are not shown in this preferred embodiment of the invention. When all of these branches have been drawn, the routine is exited at return block 104. If at test block 82 it is found that there is no parent node to the focus node, the routine is also exited immediately at that point.
Retuning to the routines in the file menu, FIG. 9 shows the flow for the save tree routine. At processing block 110 the operator is requested to enter the file name that he wishes to assign to this tree. This file name is then entered into the non-volatile memory of the disk at processing block 112 and a variable "node number" is initialized to a value of zero at processing block 114. Similarly, the variable "test node" is set equal to the identity of the root node of the tree at block 116. The root node is then assigned a number equal to the current value of node number and stored on the disk as indicated at block 118. At block 120, the current value of node number is incremented by one. Test 122 determines whether the current test node (the root node at this point in the process) has at least one successor node. If so, the value of test node is set equal to the identity of this successor node at block 124. The data structure of this successor node is stored on disk with the current value of node number at block 126, and the value of node number is incremented once more at block 128. This loop continues until an end node is encounteed in the tree at which time test 122 fails and the flow passes to test block 130. The order in which successor nodes are considered at test block 122 is from top to bottom, that is, when a successor is sought for a test node, the successor node that appears nearest the top of the tree structure as it is displayed will be considered and stored first.
Once an end node is encountered, the value of test node at that point will be the identity of such end node. This value is tested at test block 130 to determine wheter the parent node to this end node has any other successor nodes (that is whether the end node had any siblings). If so, this new successor node is assigned the most recently incremented value of node number and its data structure is stored on the disk at block 132. The node number is incremented at block 136, and test node is set to the identity of this new successor node at block 138. At test block 140 successors to the new test node are sought and the inner loop comprised of blocks 132-140 continues until a new end node is encountered. When this occurs, flow returns to test block 130 to identify any siblings to the branch leading to most recently identified end mode. The data structure of the nodes at the end of such sibling branches are stored by the above referenced inner loop until there are no more siblings, at which time test 130 fails. The value of test node is then set to the identity of this parent node at block 142 and tested for equivalence to the root node at test block 144. If there is no equivalence, the entire loop structure beginning with test block 130 continues until ultimately test block 144 is satisfied. At this point the entire tree has been stored on the disk and the routine is exited at block 146.
A similar routine is used to save a subtree onto the disk, the only difference being that the routine starts with the node at the location in the tree designated by the operator rather than the root node as in the case of the save tree function.
Turning next to the functions in the edit menu, it may be that the operator wishes to work with a previously established tree. In this case he will always have loaded this tree from the disk by means of the previously discussed load tree function. Alternatively he may wish to develop a new tree in which case he will begin with the new tree function. This function begins by displaying the root node with an incident branch for which annotation may be selected by the operator. There is also displayed a branch leaving the root node and an undefined node at the end of this branch, that is, a first successor node to the root node. Normally, the next step is to define this node by means of the define node function which will be described in connection with FIG. 10.
The operator is first requested to point to the current node which is to be defined (block) 150. Using the movement routine, which will be described below, the operator selects this node at block 152. At block 154, the operator is requested to identify the node as a decision, chance, or end node. The node type is tested at text block 160 to determine if the operator has identified the node as a decision node. If so, he is promoted to enter a description of one of the decisions that can be made at this point (such as stock, bond, annuity, etc.) if the decision is to be made is a choice of investment vehicles (block 162). The routine then causes the node to be displayed as a square with a branch below it (block 166). The description entered by the operator appears along this branch.
If the block 160 shows failure, the operator's choice is then tested at block 168 to see if this node is a chance node. If so, the operator is prompted to enter a possible outcome of the event represented by this node and also what he believes to be the probability of that outcome (block 170). The node is then displayed at block 174 as a circle with a branch and the associated description and probability below it.
Finally, if test block 168 fails, the node by default is an end node (block 178). At block 180, the operator is prompted to enter a cost or gain associated with the path through the tree leading to the final outcome represented by this node. At block 182, the combination of an open square and circle which represented the undefined node is removed, and the value selected by the operator is displayed along the branch leaving the chance node. In either of the three cases, after the display has been updated, the routine is exited as shown at blocks 166, 176, and 184.
The routines for movement about the tree in response to the cursor keys are illustrated in FIGS. 11a and 11b. By movement in the tree is meant changing the location of the highlighted branch and node to vary the locus at which some operation is to be performed. As noted previously, the highlighted node and branch are referred to herein as the current node and branch. In this connection, two tables are maintained in active memory representing the two columns of branches that appear on the display at any point in time. Recall that the display contains a focus node, its parent node and the branch connecting the parent node to the focus node, and a successor node to the focus node along with the branch connecting the focus node to the successor node. In addition the display contains all sibling branches to the branch leaving the parent node and all sibling branches to the branch leading to the successor node. Accordingly, there will appear a column of one or more branches on the left half of the graphical display window and a column of one or more branches on the right half of this window. If there are N branches in the left half, the table for the left half of the window contains N items numbered 0 through N-1. If the right half of the window contains M branches the right hand table will have items numbered 0 through M-1. The memory contains the designation of which of the M+N branches is the highlighted or current branch. Similarly the memory contains the identity of the current node and focus node.
Turning now to FIG. 11a, when a cursor key is depressed a test is first performed to determine if it was the left cursor (test block 190). If it was, test block 192 determines whether the current node prior to the key depression was the root node. If so there is no node to the left to move and the system provides an audible beep and exits the routine (block 194). Otherwise, the highlighted branch is checked at test block 196 to see if it is in the left hand column of branches indicating that the operator wishes to move to a node at the left side of the display. If so, the display is redrawn with the parent of the current node as the focus node and highlighted. Alternatively the current highlighted branch is on the right side of the screen and the current focus node becomes the highlighted node.
If the depressed cursor was not the left cursor, test block 202 determines if it was the right cursor. If so, test block 204 determines if the current highlighted branch is on the right side. If so, the display is redrawn with the current highlighted node as the focus node (block 206). If the current highlighted branch is on the left side, then test block 208 determines if there are any successors to the current node. If not, the block 210 causes the beep and exit. If there are successors, the current node is checked for equivalence to the focus node at test block 212. If so, the highlight is moved to the middle node on the right side (block 214). If not, the display is drawn with the current node as the focus node.
If the test 202 for right cursor fails, a test is performed for up cursor at block 218. If this test is positive, the current branch is checked to determine if it is number zero in the table of branches at block 220. If so, it is the top branch in the column of branches and it is not possible to move up in the tree at this point--hence a beep and exit at block 222. If the branch is not numbered zero, then the highlight is moved to the branch above the current branch.
Now turning to FIG. 11b, if the up cursor test fails, a down cursor test is performed at block 226. If this is true, the current branch number is tested at block 228 to determine if it is equal to the arc count, that is the value N-1, or M-1 in the table of branches depending on which column the current branch is located in. If it does have one of these values, that means that the current branch is the lowest one in the particular column and downward movement is not possible, hence the beep and exit at block 230. If the current branch is not the lowest in its column, then the highlight is moved to the branch just below the current branch (block 232).
If the down cursor test fails, two possibilities remain. At block 234, a check is made to see if the depressed cursor was the home cursor (see FIG. 1a). If so it is desired that the highlight move to the focus node. If the focus node is not already highlighted (test block 236) the highlight is moved to the focus node. If, however, the focus node was already highlighted, block 240 causes the beep and exit.
Finally, if the home test fails, test block 242 checks to determine if the shift and then home cursor keys have been depressed. If so, it is desired that the root become the current node. If this test passes, test block 244 determines if the tree already has the root as the focus node. If not the display is redrawn with the highlight located at the focus node (block 246). Otherwise block 248 causes the beep and exit.
The add branch function is illustrated in FIG. 12. At block 260, the operator is requested to point at the origin node for the branch which is to be added. In response, at block 262 a new node data structure is set up for the node to be added at the end of the new branch. A pointer to this new node is added to the list of successor nodes of the origin node of the new branch (block 264). The new branch and the new successor node are then drawn highlighted at block 266. At block 268, the operator is requested to specify a description for the new branch, and this annotation information is added to the data structure of the new successor node. Finally, at block 270 the annotation is printed along the new branch in the display.
As described previously, the copy subtree permits identifying a subtree which has been constructed at one point in a tree and locating a duplicate of the subtree at another point in the tree. With reference to FIG. 13, the operator is first requested to identify both the root node which is the node at the base of the subtree, and also the destination node where the base of the copy of the subtree is to be located (blocks 280 and 282). This destination node may or may not be a defined node as is tested at test block 284. If the destination node is a defined node, then the root node of the subtree will be added below the destination node as shown at block 286. Alternatively, if the destination node is not a defined node, then it will be replaced by the root node (block 288). In either case new pointers are defined for the root node and its successors throughout the subtree copy at block 290. Then new parent and successor pointers are added to the node data structures as required to define each new parent/successor node combination formed by the act of copying the subtree at block 292. Finally, at block 294 the display is generated with the destination as the focus node.
The new subtree function is similar except for the fact that the subtree to be copied is accessed from the disk memory as opposed to coming from elsewhere in the existing tree. The delete subtree function simply requires the operator to point to the root node of the subtree that is to be deleted. Node data structures corresponding to nodes in the subtree to be deleted are simply deleted from the tree memory, as are references to any of these nodes in the data structures of other nodes in the tree.
A flow chart for the macro view function appears in FIG. 14. A two-dimensional array is maintained in memory with a location corresponding to each point in function display memory 34 where a node can be represented. The task of setting up this array in preparation for displaying the macro view involves identifying each node in the tree and assigning it to the appropriate one of these array locations. Once this has been done the branches connecting the nodes can be inserted from geometric considerations and the display plotted. Assignment of the nodes begins at block 300 where a depth first search is performed to find the first end node at the top portion of the tree. A similar depth first search is implemented by the portion of FIG. 9 comprising blocks 116 through 128. Once the topmost end node has been identified, it is assigned to a location in the first row of the two dimensional array, and in the column corresponding to the depth of the end point into the tree. For example, if the end node was the successor of a node whose parent was the root node of the tree, then the end node would be located in the third column of the array. Consequently, that end node would be displayed in the (1,3) location of the macro view display. At block 302, this process is continued with each new end node being assigned to the row just below that of the preceding end node and to a column corresponding to its depth into the tree. At block 304, each intermediate node is assigned to a column corresponding to its depth into the tree. The set of rows at which its set of immediate successor nodes is determined, and the intermediate node assigned to a row at the middle of this set. At block 306, the set of nodes is plotted in function display window 34 at locations corresponding to the locations of the nodes in the two-dimensional array. At block 309, the node in the macro view corresponding to the highlighted node in the focused view is also highlighted. Then at block 308, the branches connecting the nodes are inserted using the known geometrical coordinates of the origin and termination node.
Movement of the highlighted node in the focused view has been discussed previously. The location of the highlighted branch can be caused to move in the macro view in the same way. When this is done, upon return to perform a function on the focused view, the highlighted node will be the same as then appears in the macro view. Thus, movement of the highlighted node in either view results in similar movement in the other view.
In the edit value function, the operator is enabled to select the type of value that is to be changed, and then points at the location where the change is to be made. He then enters the new value to accomplish the change. The detailed description of these steps corresponds to portions of flow graphs already discussed.
Turning to the eval menu, the expected value and probability distribution functions implement well known statistical concepts. In the case of the expected value function, the basic concept is the idea of expected value at a node. If the node is a chance node having two possible outcomes with probabilities A and B, and respective economic effects M and N, then the expected value is defined as follows.
Expected value=(A.times.M)+(B.times.N).
In other words it is the average profit (or cost) if the chance event were performed a sufficient number of times for the average result to approach the true mean value of the probability distribution of the event. The expected value so calculated then becomes the economic effect or value for the immediately preceding node in the tree. The expected value for an end node is defined here to be the value that was assigned to that node by the operator. Finally, the expected value for a decision node is defined to be larger in the case of profit analysis (smaller in the case of cost analysis) of the expected values for the successor nodes to the decision node. In other words the analysis assumes that the decision maker would make the correct decision at each decision node in the tree. Using these definitions than the analysis is simply marched back through the tree from the end nodes to the node at which the answer is desired. This is normally the root node, but it will be readily understood that a by product will be the expected value at every node of the tree. When a portion of the tree is displayed after this analysis, the annotation for the best value at each step in the tree is highlighted.
At any chance node in the tree, two or more results will be possible, each having the probability assigned by the operator during construction of the tree. Once the expected value analysis has been performed, the economic effect of each of these chance events is known. It is then a routine matter to generate a display such as that shown in FIG. 7 giving the value of these economic effects as a function of their probabilities. This type of display can be generated for any node in the tree, the root node being chosen most commonly. Also, as is well known, the display may be either of the cumulative or non-cumulative distribution for the node.
Although specific embodiments of the preferred form of the present invention have been described herein, it will be evident to those skilled in the art that the invention finds utility in connection with the development of other tree structures. Some other tree structures for example, but not by way of limitation, include pert charts and knowledge representations for expert systems. Other variations may be made in the construction, arrangement or operation of the parts or elements of the various embodiments as disclosed herein without departing from the spirit and scope of the invention as defined in the following claims.
1. A method for providing a display of a tree structure which includes a plurality of nodes interconnected by tree branches, said method comprising the steps of:
- (a) selecting a portion of said tree structure to be displayed,
- (b) scaling the geometry of said portion in a manner different than that which would be used if the entire tree were to be displayed, and
- (c) displaying the scaled portion on a medium suitable for interpretation.
2. The method of claim 1 wherein said geometry is scaled to provide that the density of tree branches is approximately uniform throughout the displayed portion of said tree structure.
3. The method of claim 1 wherein the displayed portion includes a focus node, the set of branches that originate at said focus node, the incident branch leading to said focus node, and the siblings of said incident branch.
4. The method of claim 1 wherein a second display of more of said tree structure is provided in addition to the display of said scaled portion.
5. The method of claim 1 wherein the display medium is a cathode ray tube.
6. The method of claim 1 wherein said display further includes annotation associated with said nodes.
7. An interactive method for providing a display of a portion of a tree structure which includes a plurality of nodes interconnected by tree branches, said method comprising the steps of:
- (a) promoting an operator to select a focus node for the tree portion to be displayed,
- (b) identifying an output branch which originates at said focus node,
- (c) identifying an incident branch leading to said focus node,
- (d) identifying the siblings of each of said output and incident branches, and
- (e) displaying said focus node, output, incident and sibling branches in a geometry scaled differently than that which would be used if the entire tree were to be displayed.
8. The method of claim 7 wherein the geometry is scaled to provide that the density of tree branches is approximately uniform throughout the displayed portion of said tree structure.
9. The method of claim 7 wherein a second macro display is also provided comprising a greater portion of said tree structure than that included in the first display.
10. The method of claim 7 wherein said display further includes annotation associated with said focus node.
11. An interactive method for creating a tree structure and providing a display of a portion thereof wherein said tree structure includes a plurality of nodes interconnected by tree branches, said method comprising the steps of:
- (a) prompting an operator to define the nature of the various nodes of said tree structure,
- (b) prompting an operator to add branches to connect said nodes,
- (c) displaying a portion of said tree structure as it is created, said portion being scaled to have a geometry different than that which would be used if the entire tree structure were to be displayed.
12. The method of claim 11 wherein said operator is further prompted to select annotation associated with said nodes and branches.
13. The method of claim 11 wherein the displayed portion includes a focus node, an output branch which originates at said focus node, an incident branch leading to said focus node, and the siblings of said output and incident branches.
14. The method of claim 11 wherein said geometry is scaled to provide that the density of tree branches is approximately uniform throughout the displayed portion of said tree structure.
15. The method of claim 11 wherein a second macro display is also provided comprising a greater portion of said tree structure than that included in the first display.
16. The method of claim 11 wherein said operator has the option of selecting a subtree from said tree structure and duplicating said subtree elsewhere in said tree structure.
17. The method of claim 12 wherein said tree structure comprises a decision tree, and wherein said operator is prompted to provide a values associated with various parts of said tree.
18. The method of claim 17 wherein said operator has the option of modifying said values.
19. The method of claim 17 wherein said display further includes an indication of the best decision at each decision point in said decision tree.
20. A method for displaying a tree structure comprising the steps of:
- (a) selecting various portions of the tree structure to be displayed, and
- (b) providing a display of each of said portions, each such display having a common geometry irrespective of the location and geometry of the corresponding portion in said tree structure.
21. The method of claim 20 further comprising the steps of:
- (a) prompting an operator to define nodes and branches of said tree structure,
- (b) adding the nodes and branches defined by said operator,
- (c) prompting said operator to select portions of said tree structure to be displayed, and
- (d) displaying said portions in said common geometry.
22. A method for displaying a tree structure comprising the steps of:
- (a) providing a first display of a portion of said tree structure, said portion containing at least two node, one of said nodes being highlighted,
- (b) providing a simultaneous second display of at least a part of said tree structure, said second display including the nodes contained in said first display, the node in said second display corresponding to the highlighted node in said first display also being highlighted, and the geometry of said first display being different than the geometry of the corresponding portion of said second display, and
- (c) providing means whereby an operator can cause the location of the highlighted node in either display to vary with a consequent corresponding movement of the same node in the other display.
Referenced Cited
U.S. Patent Documents
|August 1970
|September 1973
|April 18, 1978
|Dubois et al.
|March 2, 1982
|Torck et al.
|April 6, 1982
|December 28, 1982
|Kishi et al.
|July 5, 1983
|Lundstrom et al.
|November 29, 1983
|Demke et al.
|May 29, 1984
|Mayer et al.
|October 8, 1985
|Prohofsky et al.
|September 23, 1986
Other references
- Doctor et al., Display Techniques for Octree-Encoded Objects, Jul. 1981, IEEE Computer Graphics and Applications, vol. 1, No. 3, 81, pp. 29-38. Meagher, "Geometric Modeling Using Octree Encoding", Computer Graphics and Image Processing, vol. 19, 1982, pp. 129-147. Yamaguchi, "Octree Related Data Structures and Algorithms", IEEE Computer Graphics and Applications, vol. 4, No. 1, Jan. 1984, pp. 53-59.
Patent History
Type: Grant
Filed: Oct 19, 1984
Date of Patent: Dec 1, 1987
Assignee: Texas Instruments Incorporated
Inventors: David W. Franke (Austin, TX), Carroll R. Hall (Austin, TX)
Primary Examiner: Gerald L. Brigance
Attorneys: Thomas G. Devine, James T. Comfort, Melvin Sharp
Application Number: 6/663,005
International Classification: G09G 114;


text:
Ocean Spray Galapagos Cruise
Exquisite and Adventurous Cruising in the Galapagos Islands
The Ocean Spray is a small, luxurious liner fit for up to 16 passengers that lets you cruise through the Galapagos Islands in style and comfort. Spend your days snorkeling with giant sea turtles and hiking in search of rare blue footed boobies with the vessel's top rated naturalist guides.
Back on board, the professional and attentive crew of the Ocean Spray will make sure your every need is taken care of, and the chef will impress with both his Ecuadorian and international flair.
The Ocean Spray is one of the newest vessels to sail the Galapagos Islands, making it a great choice for those who prefer contemporary resources and ultimate style while cruising. From a champagne welcome drink to L'Occitane brand toiletries and panoramic windows to personal balconies in each cabin, the ship ensures you will enjoy every bit of your Galapagos cruise.
A spacious sun deck complete with indulgent Jacuzzi and even a telescope for stargazing, modern yet minimalist decor, and spacious cabins, the boat is ideal for both honeymooners and families and everyone in between. Also, you can't miss grabbing a cocktail in the al fresco bar on the Upper Deck where you can absorb the Galapagos at leisure.
Six carefully curated Galapagos itineraries take you on exhilarating journeys in one of the most invaluable and protected natural zones on Earth. The Ocean Spray's expert naturalist guides assist you on adventures to snorkel with sea lions, go on panga excursions in search of Galapagos penguins, hike on ancient volcanic landscape, and much more. Two fully equipped and modern pangas allow you to to duck in and out of coastal nooks in search of wildlife, and don't miss out on opportunities to take out the 2 double kayaks for a Pacific rowing adventure!

subset: commoncrawl


text:
My experience of going out for Italian food in Boston typically runs something like this. Invariably, the setting is the North End; with a hundred or so Italian eateries crammed into a radius of less than half a square mile, that's pretty much a given. A walk through the neighborhood's narrow, bustling sidewalks is followed by dinner in a small, crowded restaurant with a menu not unlike that of every other restaurant in the area. There's nearly always a bottle or two of robust Italian wine, but rarely cocktails. Maybe that's because wine is such a traditional accompaniment to an Italian meal. Then again, some of those places don't even have bars to sit at, let alone drink lists. That's understandable – real estate is at a premium in the North End, and most eateries justifiably devote more space to their dining areas. Cinquecento refreshingly stands that model on its head.
For starters, it's in the South End, not the North. Far from the tight confines of Boston's oldest residential neighborhood, Cinquecento is blessed with plenty of space. (There's even – gasp – a parking lot.) An illuminated staircase leads up to an expansive, thoughtfully arranged dining area.
There's a mix of long, communal tables, ideal for groups, and smaller booths for a more intimate evening. Pillars throughout the dining room are decoratively lined with bottles of classic Italian aperitifs like Campari and Aperol.
Yet for all its contemporary accents, Cinquecento exudes a certain old-world charm. The rustic hardwood floors, exposed brick, and reclaimed ceiling beams project a sense of timelessness amid the fashionable modern style.
But Cinquecento's bar area may be its most striking attribute.
The long, curvy bar is surrounded by about 20 seats. Its gorgeous surface, made from Italian marble, is lined with fresh ingredients and oversize Aperol bottles. Additional tables and booths reside beyond the bar, in front of tall picture windows.
It may be unusual to see a Boston Italian restaurant with such a prominent bar area, but it's ideal for a place that endeavors to be not only an upscale eatery but a casual, neighborhood gathering spot. And if Italian restaurants in this city aren't typically known for their bars, they certainly aren't known for their cocktail menus. This might be what truly sets Cinquecento apart.
Now don't worry – there's plenty of wine here if you want it. Cinquecento's extensive wine selection spans all manner of grapes, styles, and regions.
But with all due respect to vino, Cinquecento's cocktail program is dynamic, original, and creative. The spirit of the mother country infuses the drink list, which makes liberal use of Italian liqueurs, mixers, and the fresh herbs that line the bar. There's even a cocktail made with grappa, the most iconic and, some would say, least palatable of Italian liqueurs (I was dissuaded from ordering it by my friend Tania, who described it as "straight-up nasty pants").
I opted for something more approachable.
"Pompelmo" is Italian for grapefruit, and this refreshingly sour Pompelmo cocktail combines grapefruit juice, tequila, rosemary, smashed cucumber, and sea salt. Softly herbal with a cool freshness from the cucumber, the tequila adds a distinctive bite.
The Whiskey Alla Moda is a bold drink with a mild sweetness, mixing Old Overholt rye with a house-made basil citrus syrup.
The Calientie Arancis is kind of like a grown-up margarita. Made with Lunazul tequila, spiced blood orange, Aperol, and smashed ginger, it's a vibrant, fruity drink with a little kick to it. The Aperol balances out the flavors with a hint of bitterness.
As evidenced by the bottles stationed throughout the bar and restaurant, Aperol is a popular ingredient at Cinquecento, as is the similar aperitif Campari. The bitter Italian spirits factor into a number of the drinks, most notably the Negroni, a classic that originated in Florence in the early 20th centuryand has enjoyed a spectacular resurgence. Cinquecento even offers a Negroni "flight," featuring the original Negroni and two variations.
This institutional fondness for the Negroni is something I probably should have accounted for when I asked the bartender, Phil, about the "Impazzire" option. Translating loosely to "go crazy," this is your chance to simply rely on the bartender's whims for a handcrafted cocktail. "How about a Negroni?" he quickly asked. Nanoseconds later he was already mixing the ingredients, leaving me no chance to politely explain that I'm not a huge fan of the immensely popular drink. But I'm glad I held my tongue. Phil put a couple of interesting twists on the classic – swapping out gin for bourbon and Campari for the less bitter Aperol. His bourbon Negroni was more in the neighborhood of a Manhattan, with a subtle orange essence from the Aperol.
Cinquecento's dinner menu reflects that same sense of creativity and think-on-your-feet spontaneity. Led by chef Justin Winters, Cinquecento lives up to its name as a Roman "trattoria" – a restaurant focusing more on regional and local recipes than on mainstream Italian staples. In other words, it's not as predictable as heaping portions of pasta smothered in red sauce and cheese. Among the entrées, Rigatoni Alla Norcia is made with fennel sausage and cognac cream, while a veal tenderloin is wrapped in prosciutto and served with cabbage fondue and marsala sauce.
My friend Tania and I stuck with the antipasti, and she suggested the Carciofi Alla Giudia. These fried baby artichokes, served with lemon and salsa verde, are crispy and delicious, but very garlicky. Ordering these bad boys is inadvisable if you're on a date; better to share them with a friend (or if you need to ward off vampires).
And then, a special surprise! Executive sous chef Caleb brought us a house-made lardo, a dish he'd been trying out in the kitchen but that hasn't made it onto the menu. Lardo, if you don't know, is made from a layer of back fat from a pig, cured and seasoned with salt, herbs, and spices. Draped over baked bread and topped with fresh ramps and chilis, it made for a smoky, unusual, and tasty treat.
Now in the interest of full disclosure, Tania is engaged to chef Winters, so we probably got a little extra attention while we were there. I doubt the chefs typically emerge from the kitchen to share new recipes with random guests. Still, it's kind of cool to know that they're back there experimenting, coming up with new recipes based on the ingredients they have access to on a given day.
Now what goes best with back fat? Raw meat, obviously. So next up was the Carpaccio Carbonizatti. This phenomenal charred beef carpaccio is bursting with flavor, served with hazelnuts, parmigiano crema, and grilled bread. Perfetto!
We closed out with the evening's antipasti special – pickled ramps and mushrooms served with a zucchini pesto. Now I'm no lover of mushrooms and wouldn't have chosen this on my own. But for the second time that night, I was pleasantly surprised. The mushrooms absorbed the rich, earthy flavors of the zucchini pesto, and the ramps, or wild leeks, added an aromatic crispness.
When I returned a week later to round things out with another drink, I found Phil again working the bar. And while it was only my second visit to Cinquecento, I felt, oddly enough, like a regular. Phil didn't even hand me a menu, and instead we talked about cocktails that would be suitable for that particular evening. "It's nice out," he noted. "Want something spring-y? Bourbon?" he asked. I readily agreed, and he proceeded to mix up an excellent drink that even caught the attention of a server passing by, who inquired as to its ingredients.
It's a play on a Bourbon Smash," Phil said of his elaborate drink, which combined bourbon, muddled mint, lime, Aperol (of course), and a touch of basil simple syrup, finished with a little soda and a mint leaf garnish. "The Aperol goes well with the mint," he explained; it also brought a subtle undercurrent of bitterness to this fresh, aromatic cocktail, which was well suited to the warm, spring weather we were experiencing.
Last Call
It's pronounced chin-kwe-CHEN-to. If that doesn't roll off the tongue, you can call it by its English translation – 500, which also reflects the number of its Harrison Avenue address. That's a fair distance from the city's most famous concentration of Italian restaurants; but in terms of style, it's about as far as you can get. I know it's unfair to paint the entire North End with one broad stroke; there's certainly some good Italian food and engaging dining experiences to be had there. But there's a lot of similarity, too, and I always appreciate the chance to try something different.
Cinquecento's cocktail program alone distinguishes it from its peers, but the improvisational spirit behind the bar begins in the kitchen. Chef Justin Winters and his team seek out seasonal ingredients for an inventive, eclectic menu imbued with a sense of authenticity not often found in Americanized Italian eateries. You can have lasagna anywhere; garganelli with red wine octopus ragu and squid ink is a bit harder to find.
An impressive bar area and selection of craft drinks are also rarities in Boston Italian restaurants, but they're key to the neighborhood vibe that Cinquecento's striving for. I understand it can get pretty loud in there on weekend nights, but the bar staff are friendly, attentive, and willing to make a drink according to your preferences.
And it's helpful if you prefer Negronis.
Address: 500 Harrison Avenue, Boston
Copyright © Boston BarHopper. All Rights Reserved.


text:
We aim to create an architecture of clarity, simplicity, and elegance that supports and reflects the unique core values and vision of each client. Our objective is to blend functional requirements with aesthetics to create buildings that respond with a poetic spirit to contextual influences and the unique functional needs of our clients.
Our work is not based on the application of a consistent stylistic response. Instead, it embraces the fluid processes involved in the creation of timeless architecture. We work carefully to translate vision into reality, creating innovative spaces shaped by light, materials and physical setting.
It is our belief that a successful project is best realized through a dynamic and interactive process that identifies and meets the goals, needs, and aspirations of the building users while respecting its context in the community and enhancing the environment. This process is dynamic in that it is evolving as the project develops, and interactive in that all parties with an interest are included.
In addition to our technical knowledge and experience, we bring an attitude of openness guided by the belief that each stakeholder can and must be permitted to make positive contributions which, when combined together, total greater than the sum of their individual parts. It is our first and continuing task as designers to listen to, and be receptive to, the wealth of ideas that the building users bring to each project. We know some of those ideas are clear and ready for development. We also understand that often those ideas need a supportive forum, a well run meeting, or a fast and accurate technical response to cohere and be ready for use.
That is the heart of our philosophy and approach — a supportive, open-minded process backed by experience and technical knowledge.


text:
Self Defense...
We are going to look at how to poke your attacker in the eyes. After all, if an attacker can't see you, there is a good chance he won't hurt you. You're going to draw an ugly face to practise on. We will also look at "the element of surprise" and "good timing" to increase the chances of a successful outcome.
Only as an absolute last resort should you use "The Eye Gouge" technique. You stand an extremely good chance of permanently damaging the eyes of your attacker. In an extreme situation, consider what may happen if you don't.
The eye gouge is very easy to master. The hardest part is getting yourself to do it.
Here's how it's done:
The Eye Gouge
1. Use two fingers on just one hand -- your pointer finger and middle finger.
2. Point them straight out, folding the remaining two fingers out of the way.
3. Place your thumb on top of the remaining fingers to keep them out of the way.
4. Spread your pointer finger and the middle finger, and stiffen them.
Congratulate yourself, for you have just made the universal peace sign. Now give your attacker a very close look at it. Aim straight for the eyes, and just do it - strike!
You don't need a 100% direct hit. It does however, need to be close to it.
The eyes are set back in the head slightly and have rounded bones surrounding them. These bones will act like a funnel and guide your fingers in on their path of destruction. What you do have to be accurate with, is surprise and timing (we will look at them in a minute).
As always, don't hang around, take off, hit the road and disappear. It's important to note here that this must be done FAST like a snake striking its prey.
In short:
1. Peace.
2. Poke.
3. Run.
Give the following idea some thought…
e a distraction
e a distraction
If your hands are free, try to somehow create a distraction. Example: Touch something on your face, maybe scratch your nose or cover your mouth (to scream). Doing this brings your hand closer to your attacker's eyes. Your fingers will have less distance to travel when you strike. It will also allow less time for your attacker to react… very important.
Do this silly little exercise now:
Try it on paper
Have a bit of fun here. Get yourself a piece of paper and roughly draw a really ugly life-size face on it. Draw the two eyes (crossed), nose (crooked), three pieces of hair (sticking up) and a mouth with lots of bent and missing teeth.
With one hand, hold your work-of-art up and out in front of you at about three-quarters of your arms length. Imagine that the picture is your attacker. Now is the time to reach up with your other hand. Scratch your nose, brush your hair back, or cover your nose or mouth (distraction) and then think like a snake.
Use the same striking speed as a Cobra snake. As quickly as you can, reach out with your fingers apart, hit and run.
The eye gouge technique can be done with great speed can't it? Speed is just about all that you need for this to work. No strength is required.
The element of surprise and good timing are
vitally important!
You could pretend to be hurt and exaggerate it to the hilt (you may not have to, too much). Go for an academy award. You could even pretend to pass out or maybe pretend to faint, be dazed, stunned or in shock.
Your plan should be to get your attacker to lower his guard and relax a little. Stop and think about this for a minute. See if you can come up with a way to APPEAR beaten while at the same time position yourself for a strike.
Now timing steps into the arena. This is just as, if not more important than using the element of surprise. Keep up your acting; imagine your work of art is in front of you. It may help you to see your attacker's face as your ugly drawing. Scratch your nose and when he's close, still, and off guard, STRIKE and then get the you-know-what out of there.
Points to remember: Only when all else fails should you use this technique and by all means, do it right! Also, remember that you stand a good chance of permanently damaging your attacker's eyes. BUT in an extreme situation, consider what may happen if you don't! The element of surprise, and good timing, are vitally important. If you don't like the idea of poking someone in the eyes, it may help you to see your attacker's face as your ugly drawing. Finally…
A good attack is like a car crash, if you walk away from it… be happy!
A special thanks to Self-Defense Now for allowing us to use the above article! The Self-Defense Now website has all kinds of practical tips and techniques on self-defense. The Self-Defense Now website can be found by following this link: http://www.selfdefensenow.com


text:
Google and Microsoft find themselves competitors in a variety of areas, including the field of electronic medical records (EMR), where they are going up against a number of entrenched players. Because of the potential barriers for interoperability among these systems, early wins and signs of momentum may be key. In that sense, today's announcement that the Mayo Clinic, which describes itself as the largest nonprofit group practice in the world, will be going with Microsoft's entry into the field is big news for the folks in Redmond.
The new service, called the Mayo Clinic Health Manager involves a customized Web interface powered by Microsoft's Health Vault records storage system. The site is already live, and anyone is welcome to start an account with it, regardless of whether they are a patient with anyone affiliated with the Mayo Clinic. Use of the service is free. As with other efforts of this sort, data from existing healthcare providers, such as pharmacies, can be imported, provided that they interact with HealthVault; data from monitoring devices, such as blood pressure readings, can also be imported. Users also have fine-grained control over what information they share with others.
The Mayo's distinct twist on the system seems to be a focus on preventative family medicine. The single interface allows one individual to manage all of a family's health records—Mayo suggests that it will be useful not only for parents, but for children of elderly parents.
The system is said to provide some of the promised benefits of EMR, namely the automation of various forms of medical monitoring. So, for example, based on demographic information, the system will flag users and alert them of important healthcare maintenance events, such as the need for annual mammograms or cholesterol screening. It will also adjust to data entered about existing medical conditions, such as asthma. Mayo promises that the more information you provide to the system, the more you'll get out of it. In addition to the above, the system currently tracks childhood immunizations and pregnancy; Type 2 diabetes, high cholesterol, and high blood pressure capabilities should be rolled out within the next few months.
The system has a feature called "Prepare for Appointments" that helps users gather information that is relevant to share with healthcare providers. It's not clear whether this specifically integrates with Mayo practices. For example, it would be especially helpful to know if fasting is required ahead of a planned appointment, but that's something that may require direct access to individual medical practices.
The choice of Microsoft's HealthVault may represent a big win for the company, but the system being deployed by the Mayo Clinic seems to highlight how the choice of an underlying record storage system isn't as important as what's done with it. The real brains of the system is the software that combines the demographic and medical data with Mayo's view of best practices in order to recommend regular health management and monitoring routines. The fact that new features of the sort that Mayo promises to add can be rolled out to a system that's already operational highlights why EMR has attracted the attention of both the government and the healthcare industry.


text:
Big Faces: Hong Kong Phooey And Friends U (2012)
Big Faces: Hong Kong Phooey And FriendsMore Hanna Barbera
Just who is "America's secret weapon against crime?" As his catchy theme informs, he's a "number one super guy, quicker than the human eye!"
Disguised as a mild-mannered police station janitor, Penrod transforms into the powerful pooch who the girls love to smooch by leaping into the bottom drawer of a filing cabinet - and emerging as Hong Kong Phooey in a bright red karate outfit!


text:
Over the course of the past two days, I have been in online discussions with our fearless leader, ElfNinosMom, and LFV newcomer, Jeff Wartman, about whether "Joe Six-Pack" — alias John Q. Taxpayer, etc. — cares about the Federal Reserve. Well, as luck would have it, CNN.com took a break from its riveting coverage of female bathroom habits and ran a story about a recent survey concerning the Fed.
Americans skeptical of Fed
Poll shows that majority of respondents are unsure about the central bank's ability to improve the economy.
The findings:
- 17% of Americans are "not confident at all" that the Fed can stimulate the nation's "shaky economy"
- 34% "not very confident"
- only 8% were "very confident" in the Fed's abilities
Of course, it is the 8% that are most likely correct — the Fed almost certainly can "stimulate" the economy, just as a shot of heroin can stimulate a junkie. But, to me, these numbers show the nation does not have confidence in the cabal of central economic planners running the money system, and they're starting to catch on to the scam.
Thanks to government intervention, Joe Six-Pack's six packs now cost what a case did a few years ago, and he's mad as hell about it. Now is the time for Libertarians to champion honest money and economic liberty — not to cower from these "complicated" issues that "don't matter to regular people." People are being robbed on a daily basis, and they care plenty.


text:
Denver Broncos CB Champ Bailey named to Madden NFL All-25 Team
Champ Bailey has long been a cornerstone of the Denver Broncos secondary. Now his digital version is being honored among the best to be included in the Madden NFL series.
EA Sports announced today that the star cornerback's Madden 2005 version is part of the Madden NFL All-25 Team. Bailey will be across the field from Deion Sanders.
From EA Sports:
Bailey's cover skills and defense against the run made him a true weapon, even on the defensive side of the ball. … Bailey changed gameplans by himself and forced gamers to go to the over side of the field. Few defensive players have ever had that kind of influence on the game.
EA Sports is compiling a team of the greatest players to be included in the series' 25-year history. So far, the team includes:
Coach John Madden
RB Marshall Faulk, St. Louis (Madden NFL 2003)
FB Mike Alstott, Tampa Bay (Madden NFL 2000)
DE Julius Peppers, Carolina (Madden 2006)
DE Dwight Freeney, Indianapolis (Madden 2007)
FS Sean Taylor, Washington (Madden 2006)
SS Brian Dawkins, Philadelphia (Madden '99)
CB Deion Sanders, San Francisco (Madden '95)
The starting quarterback will be announced Aug. 4. If it's not an Atlanta player from 2004, clearly, someone has not been paying attention.
Madden NFL 25 is slated for an Aug. 27 release for the Xbox 360 and PlayStation 3.


text:
5:30 pm
EventsBack to calendar
Spring Lecture: Charles Rose
More Specificity, Please!
Charles Rose has created award-winning buildings of exceptional quality. After graduating from Princeton University and Harvard University's Graduate School of Design, Rose established his architectural practice and has been dedicated to creating innovative civic, cultural, educational, and residential projects for more than twenty-five years. His work remains at the forefront of American design.
The works of Charles Rose Architects are located throughout the United States. Rose celebrates each distinct site with respect to its distinct physical, ecological, cultural, and historical contexts. His work fosters social interaction, interdisciplinary environments, and sustainable initiatives. His most prominent local project, locate in Greenfield, MA, is the John Oliver Transit Center, the first net-zero energy transit center in the United States.


text:
Venus's Day in the Sun: How the Transit Will Help Us Search for Other Earths
Mark Anderson has an M.S. in astrophysics, is a contributor to Discover, and has written about science and history for many other publications. His new book The Day the World Discovered the Sun: An Extraordinary Story of Scientific Adventure and the Race to Track the Transit of Venus has just been published by Da Capo.
Also see Paul Raeburns's explanation of what investigating Venus can teach us about our own planet.
The 2004 Venus transit at sunrise
On Tuesday afternoon—for those in North, Central and parts of South America—the planet Venus will pass directly in front of the sun for seven hours. This rare spectacle, called the Venus transit, occurs twice within a decade, then not again for more than a century. But as fleeting as they are, transits of the past provided invaluable information about our place in the solar system—and, astronomers hope, this transit could help us glean more information on planets elsewhere in the galaxy.
In the 1760s, some of the age's top explorers and scientists collaborated on dozens of expeditions across the planet to observe the Venus transit. These voyages launched the legendary careers of Captain Cook and the surveyors Mason and Dixon. The expeditions also represented the world's first big science project—forefather to today's Large Hadron Collider and Human Genome Project, in which an international community of hundreds or thousands collaborates on a single fundamental scientific problem at the frontier of human knowledge.
In the balance hung two of the greatest scientific and technological puzzles of the 18th century: discovering the Sun's distance from the Earth and finding one's longitude at sea. The transit itself briefly enabled astronomers to become interplanetary surveyors triangulating distances across the solar system. The first problem could be solved. And the voyages to observe the transit—because of both their globetrotting nature and the precision timekeepers and navigational aids each expedition carried with them—became the perfect test labs for the second problem. So while the observations made from the destinations of these voyages solved the first problem, the journeys themselves helped solve the second. Astronomy was the essential way-finding science of the times, cracking open the field of navigation and heralding a new age of global expedition, trade, and conquest.
Today, the distance to the Sun is known with pinpoint accuracy and global navigation is easily guided by GPS. But at approximately 6:10 p.m. EDT on June 5, astronomers around the world will still be training their telescopes on this year's transit, this time with a new objective in mind.
New planets outside the solar system are being discovered practically every week. Some 770 such exoplanets have been confirmed, with three times as many possible discoveries awaiting further investigation. This is a staggering menagerie of alien worlds across the Milky Way—especially considering that only 20 years ago the known exoplanets in the universe totaled just two.
From among that ever-growing list, astronomers hope to find out which planets are like most similar to our own—and which might have suitable conditions suitable conditions to support life. To know that, they have to determine not just each planet's size or how far it is from its star, but what's in its atmosphere. Venus, for instance, has 82% of the Earth's mass, measures 95% of its size and orbits 72% of Earth's distance from the sun. So judging by these facts alone, it might appear that Earth and Venus are close cousins, if not quite twins. But whereas Earth's atmosphere is more than one-fifth oxygen, with much of the rest nitrogen, Venus's is made up of more than 95% carbon dioxide—-making the daily high on Venus around 870 degrees Fahrenheit (470 degrees C), far too hot for liquid water or life as we know it.
So learning about an exoplanet's atmosphere is vital to determining its habitability. Here is where present-day Venus transits can help the modern exoplanet search just as the 18th century transits proved so essential to understanding our own solar system.
When Venus passes in front of the Sun, a little bit the Sun's light also passes through the tiny ring of Venus's atmosphere at the planet's outer edge. Just 0.001% of the Sun's light during the Venus transit zips through our neighboring hothouse planet's atmosphere on its way to Earth.
But isolating and examining that 0.001% of the sun's light in detail will be very important. When Venus crosses the sun's face during a transit, that 0.001% of the light carries spectral signatures—absorption lines—as tiny mementos of its passage through Venus's atmosphere. During the 2004 transit, a team of nine French, Swiss, American, Spanish and German astronomers discovered by examining these absorption lines not only a strong signature of carbon-dioxide in the Venusian atmosphere but even the characteristic windspeeds at various altitudes above the planet's surface. They spied on Venus's weather from across the solar system.
In 2009, NASA launched the Kepler spacecraft, a dedicated exoplanet-finding, space-based telescope. Kepler performs a kind of exoplanetary stake-out, continually keeping its field of view trained on 145,000 stars in the constellations Cygnus, Lyra, and Draco. It primarily looks for exoplanets transiting their host stars. Astronomers then perform follow-up studies of the candidate exoplanets that Kepler finds. Using observations such as the 2004 Venus transit data as a guide, they can then examine the composition and characteristics of exoplanets' atmospheres—wherever such atmospheres might be found. Using spectroscopic techniques developed and tested during this century's two Venus transits—the one that happened in 2004 and the one happening this week—astronomers may in the future be able to make exoplanetary weather reports not just across the solar system but across the galaxy.
In December 2011, nine American and French astronomers wrote a letter to the journal Astronomy & Astrophyisics urging their colleagues to perform careful measurements of this week's Venus transit. "The June 2012 transit will be a unique occasion," these scientists note, to study "a planet that was long believed to be the Earth's twin sister—[and] to discriminate between Earth-like and Venus-like atmospheres of exoplanets transiting their stars."
Even the Hubble Space Telescope, which would burn out its optics if it looked directly at the Sun, will be studying the Sun's light reflected off the surface of the moon during the transit. Hubble too will be combing through the light it collects for the 0.001% of the signal that contains telltale fingerprints of Venus's atmosphere.
Perhaps by the next transit of Venus, in December 2117, the present-day problems that the transit illuminates might be solved. The galaxy might teem with sister earths, or it could turn out to be astonishingly barren: Anything is possible. But one profound fact remains. After three centuries of Venus transit observations, much is achievable with a little help from a nearby planet.
Tips for Transit Spotters
This year's Venus transit begins on June 5 at approximately 6:00 p.m. Eastern Daylight Time and will last just under seven hours. NASA has set up a website providing more information about where and when the transit can be seen.
A word of warning for would-be Venus transit watchers: Like the Hubble's delicate cameras and optics, the human eye can sustain serious and permanent damage from looking directly at the sun. Don't do it. (Crucially, if you have the advantage of viewing the transit through a telescope or binoculars, only do so if a solar filter is attached to the device. Solar filters typically look like a piece of aluminum foil that fits over the telescope or binoculars' front end.)
It's best to see the transit through a telescope. So for most people, that means seeking out local astronomy clubs, schools or other groups who will be setting up their own equipment to view the transit. Or, if you have access to #14 welder's glass, that'll do the trick for naked eye observing. And there are easy projection techniques using a pinhole camera or binoculars, too.
Image courtesy of Jimmy Westlake


text: Includes 50 Recyclable bags inside an easy to open and resealable zip lock bag. . Easy tieing to seal in odor with the handles after picking up!! Keep your parks, sidewalks, and lawns clean of waste with the environmentally friendly Poopy Pickups Recyclable Bags. These large, white opaque bags have convenient handles that make them easy to carry on your walk around the block or to the park. You can't see through them, and they seal in the odor tightly after picking up after your pet. Not only does picking up after your animal help the environment, but the Poopy Pickups are also completely recyclable. The easy-opening zop lock bag locks in place after use. Tie the bag to your pet's leash or carry it in your pocket. Made in the U.S.A.


text:
Dive into the heart of the Middle Ages; from only CHF 52 per person.
The Medieval Day Package price includes:
• A visit to Grandson castle
• An aperitif at the Maison des terroirs
• A two-course medieval meal at the Café du Commerce or at the Arboulastre
Custom-made days for groups or individual visitors are possible.
Bookings via the Café du commerce or online
- Café du Commerce
- Place du Château 12
- 1422 Grandson - CH
- How to get there?