throbber
“fl“MM“m“MHMHNHHNWHHHNHWHHWHHMHM
`USODS414309A
`
`United States Patent
`
`[19]
`
`[11] Patent Number:
`
`5,414,809
`
`Hogan et al.
`
`
`
`[45] Date of Patent: May 9, 1995
`
`[5 4] GRAPHICAL DISPLAY OF DATA
`
`[75]
`
`Inventors: Patrick M. Hogan; Rhonda L.
`Alexander; Lars Greninger; Lloyd J.
`Arrow, all of Austin, Tex.
`
`[73] Assignee: Texas Instruments Incorporated,
`Dallas, Tex.
`
`[21] Appl. N0.: 56,703
`
`[22] Filed:
`
`Apr. 3|), 1993
`
`Int. (31.5 .............................................. GOSF 15/62
`[51]
`
`............................. 395/155
`[52] US. Cl.
`[58] Field of Search ............... 395/155, 161, 140, 141,
`395/ I42; 345/ I 13, 125
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`5,257,349 10/1993 Alexander
`5,289,568
`2/1994 Hosoya et a1.
`5,307,036 4/1994 Grifl‘in et a].
`
`395/159
`
`..... 395/135
`395/146
`
`Primary Examiner—Pm K. Nguyen
`Artemey, Agent, or Finn—Robert L. Troike; Richard L.
`Donaldson
`
`ABSTRACI‘
`[57]
`A method of using a computer system 20 to implement
`a graphical interface 10. The method displays a graph
`160 of data from a database system 11, and permits a
`user to change the data by changing the appearance of
`the graph 16!). The graph 160 is generated from a stored
`graphics engine 12, which contains rules for generating
`graphical objects comprising the graph and the objects‘
`attributes. The graphical objects and attributes are
`matched to data delivered from the database system 11.
`If the user manipulates a graphical object, the graphical
`interface 10 associates the change to a new data value,
`and updates both the graph 160 l and the data in the
`database system 1].
`
`2|] Claims, 11 Drawing Sheets
`
`
`
`USER SPECS
` DATABASE
`SYSTEM
`1
`I
`DATA
`
`
`l
`I
`
`
`
`I
`I
`l
`I
`:
`Reagent
`i
`l
`
`l
`l
`14 I
`EDIT I
`12
`I
`i
`
`
`
`
`
`GRAPHICS
`GRAPHICS
`
`ENGINE
`ENGINE
`
`
`
`(GANTT)
`(TREE) '
`
`
`
`
`
`I
`
`I I
`
`:
`I
`I
`.
`
`COMMAND
`
`I
`
`I
`:
`I
`I
`.2
`
`TDA 1011
`TDA 1011
`CBM of U.S. Pat. No. 7,533,056
`CBM of US. Pat. No. 7,533,056
`
`0001
`0001
`
`

`

`US. Patent
`
`May 9, 1995
`
`Sheet 1 of 11
`
`5,414,809
`
`
`
`‘5
`
`FIG.
`
`1
`
`H
`
`
`
`17
`
`USER SPECS
`DATA
`
`
`
`
`
`
`'
`RECORD EDITI
`
`r———— l
`14 }
`COMMAND'
`
`
`
`ENI
`
`
`
`GRAPHICS
`GRAPHICS
`ENGINE
`ENGINE
`
`
`
`Ufifl
`(GANTT)
`
`
`
`
`———--—¢——u-————————-flu—-——
`
`ROOT LIBRARY
`DATA HANDLING
`
`PRIMIHVES
`
`0002
`0002
`
`

`

`US. Patent
`
`May 9, 1995
`
`Sheet 2 of 11
`
`5,414,809
`
`5‘
`
`FIG. 5
`
`file
`
`Edit
`
`Linking
`
`flaws
`
`window
`
`Qammands
`
`Salary
`
`Organizafion
`
`FIG. 5A
`
`
`E—
`gdit
`Linking
`Ejews
`Vjindow
`gammands
`Help
`
`
`
`HE]
`
`
`
`
`
`
`
`_
`Organization
`
`m [1
`H
`Salary
`
`
`
`
`
`Qpen...
`Merge...
`Save
`Save As...
`
`Export...
`impart...
`
`Siafisfics
`
`Exit GrA'r'
`
`0003
`0003
`
`

`

`U.S. Patent
`
`May 9, 1995
`
`Sheet 3 of 11
`
`5,414,809
`
`FIG. 5B
`
`
`
`
`flindow
`Yjews
`inking
`
`
`Configuration...
`Tes’r Application Menus
`I>
`
`Record Types...
`
`Enumeration Types...
`
`flaia Hams...
`
`Eiiiers...
`
`gods...
`
`
`
`
`Links...
`IEF Ania Link...
`
`Commands...
`
`Edit Conirol...
`
`Quick Command...
`
`
`
`golors...
`Eons...
`
`Associations...
`
`_ L
`
`Qammands
`
`Help
`
`
`
`file
`
`Edit
`
`mews
`
`flindow
`
`Qommands
`
`Help
`
`
`
`Location
`
`0004
`
`FIG. SC
`
`
`
`_=Ei
`
`
`
`Ium Linking 0n
`
`Turn Linking flfi
`
`
`
`
`Vacafion Refresh links
`
`
`fll—‘I
`
`E='
`
`
`
`

`

`US. Patent
`
`May 9, 1995
`
`Sheet 4 of 11
`
`5,414,809
`
`FIG. 5D
`
`
`
`|—-_MasterProcess
`
`file
`gait
`Linking
`flindow
`gammands
`Help
`
`grea’re...
`
`Ins
`
`
`
`Vacafion
`
`Space
`Cfl+lns
`Del
`
`gopy...
`flelefa...
`
`fihow
`Clgse
`
`
`
`
`
`
`HE
`
`
`
`
` froperfies...
`
`
`
`
`
`
`
`Efl- ':
`
`Locofion
`
`Shag All
`yinimize A1!
`5 Close All
`
`
`
`
`
`
`EIiIEN—fiil
`
`
`
`
`Field Type
`
`
`—m
`—-
`
`
`
`
`
`
`
`lM—IIEI
`
`0005
`0005
`
`

`

`US. Patent
`
`May 9, 1995
`
`Sheet 5 of 11
`
`5,414,809
`
`FIG. 7
`
`Enumeraiion Type Edifor
`
`En umerufion Type
`
`
`
`Elf—‘1
`
`—|IEI
`
`Consfcm’rs
`
`
`
`
`
`
`
`
`
`
`
`m |—_1-m-III
`
`U
`
`_l§!
`
`E
`
`Table
`
`Enumerafion Type
`BadgeCoior
`
`Graphic Aflribu’re
`
`.
`
`0006
`0006
`
`

`

`US. Patent
`
`May 9, 1995
`
`Sheet 6 of 11
`
`5,414,809
`
`FIG. 9
`
`lLink 1: 0?? Gel Excel.
`
`{2: GRA
`
`DEMO EMPDEHDXLS, momsacw
`
`|:
`
`External
`
`GrAF
`
`[I Enabled
`
`Application
`Topic C:\GRAF\DEMO\EHPDE
`[tern R1C1:R6001U
`
`|_|
`Record Type Employee
`Key Value :I
`Field CE
`
`DKay Generation
`I Paste from Clipboard I
`m Type: _I °°m°°s'*° “m D
`
`[:lTranspose
`
`EIDynarnic
`
`FIG. 70
`
`100
`/
`
`Command Editor
`
`_ename..._elete...
`
`Show Praieo’r Employee Couni
`
`
`
`Appncofion: I::I Topic: :3I____:resrcommunal
`
`Command String:
`
`
`
`
`
`
`
`View Salary display slack Proie—cl:display sari Badge <;disla couE—
`
`
`
`
`
`DRequires Selectable
`
`Hem of Type:
`
`E Include an Menus
`
`
`
`l_rAFCommandl
`
`0007
`0007
`
`

`

`US. Patent
`
`May 9, 1995
`
`Sheet 7 of 11
`
`5,414,809
`
`\
`
`FIG.
`
`1 1
`
`
`
`
`
`
`
`
`
`
`Creole
`
`0 N01 Allowed
`
`0 Local
`
`0 Remote Command
`
`Update
`
`0 Hal Allowed
`
`
`
`0 Local
`O Remole Command(s)
`DRernoie Editor
`
`DUpdale Nolifiaalion
`
`Record Tum—191 _
`
`
`
`| Command Editor...
`I
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Delolo
`0 Not Allowod
`
`
`
`
`0 Local
`O Remolo Command
`
`
`
`
`
`
`FIG. 12
`
`STORE GRAPHICS ENGINE
`
`100
`
`SET UP LOCAL DATA STORE
`
`101
`
`USER SELECTS VIEW STYLE
`
`102
`
`USER CONFIGURES VIEW STYLE
`
`103
`
`DATA MATCHED T0
`OBJECTS AND ATTRIBUTES
`
`DISPLAY GRAPH
`
`USER SELECTS
`OBJECT T0 EDIT
`
`104
`
`”35
`
`106
`
`YES
`
` 9
`
`N0
`
`USER MANIPULATES
`OBJECT
`
`
`
`1070
`
`USER ENTERS TEXT
`
`107b
`
`UPDATE GRAPH
`
`1090
`
`UPDATE LOCAL DATABASE
`
`1 09b
`
`UPDATE EXTERNAL
`DATABASE
`
`0008
`0008
`
`

`

`US. Patent
`
`May 9, 1995
`
`Sheet 8 of 11
`
`5,414,809
`
`_...
`
`i._
`
`150
`\.
`
`FIG.
`
`7 5
`
`
`
`
`
`Record Type
`—EI
`Stud Time Field
`VocStor’t
`510]) Time new
`VooSfop
`
`
`
`
`My
`
`
`
`Source
`
`
`Gonfi Bars
`
`
`
`
`Row Height E
`
`Time Granulori’ry
`
`
`
`© seconds
`
`El
`0 minufes
`
`
`
`0 days
`
`
`[El
`
`
`
`
`
`Options
`Notch Size
`
`mm
`IZDoio Direc’r Manipulation
`
`
`
`
`| Background Color...
`I
`
`
`0009
`0009
`
`

`

`US. Patent
`
`May 9, 1995
`
`Sheet 9 of 11
`
`5,414,809
`
`W
`
`FIG. 16
`
`
`
`
`32
`
`291
`
`291
`
`3 |i_|
`
`
`
`
`
`
`IE—IEI
`
`Configure
`Edit
`Kiev:
`Qammands
`flindow
`Heip
`December
`Januarya
`February|lJ|
`
`
`'5-un,Jack
`
`
`
`Hannesberg.
`Turkmenis, St
`
`
`
`Hilts, Travis
`
`SoInt Lauren
`
`Falls, Victoria
`
`
`160
`
`
`
`_m we!»
`
`Qommands
`
`window
`
`Help
`
`a
`15
`22
`
`
`lns
`Create...
`_rugon.Franv Edit...
`Enter
`
`
`
`Delete... Del
`
`
`
`E
`
`IE—a
`
`
`
`—___Undo CtrI+U
`January
`
`
`
`Turkmenis, St
`
`Hills, Travis
`
`
`Saint, Lawren-
` Folls, Victoria
`
`
` LEE
`
`
`0010
`0010
`
`

`

`US. Patent
`
`I May 9, 1995
`
`Sheet 10 of 11
`
`5,414,809
`
`F10.
`
`7613
`
`I’_aEl
`Cogfigure
`E_dl’r
`Qommonds
`window
`Help
`
`
`
`
`
`
`L": Ear Sfyles...
`
`Bur Legend
`Cer-L
`
`
`
`'3 Label Styles...
`
`Label Legeng Shiff+Cfrl+
`
`
`
`
`
`
`
`
`
`
`Arogon, Fran
`
`Sun. Jock
`
`Honnesberg,
`
`Turkmenis, Sf
`
`Hills, Travis
`
`Soin’r, Lowran-
`
`Folls. Viciorio
`
`ElEl
`
`FIG. 76C
`
`FE—EEl
`Configure
`Edit
`yjew
`window
`Help
`
`February
`Show Projec‘l Employee Counl
`
`
`291
`22
`Show Proiecl Solory Totals
`
`Show Solonr Bors
`
`
` 1 H
`
`IE]
`_
`
`
`
`0011
`0011
`
`

`

`US. Patent
`
`May 9, 1995
`
`Sheet 11 of 11
`
`5,414,809
`
`FIG
`160‘1
`
`
`
`E—afil
`window
`IE[
`February
`January
`
`291
`a1'|!l
`22
`15
`291
`a
`22
`15
`
`
`
`Configura
`
`Commands
`
`Help
`
`Kiev
`Edi!
`December
`I
`a
`
`
`
`
`
`E“—
`
`Aragan. Fran-
`
`Sun, Jack
`
`Turkmenis, Si
`
`
`
`
`FIG.
`
`7 8
`
`§alary...
`
`EacS’rarf...
`
`§fa+us
`
`Eraieal
`
`Ehane...
`
`Name Hills. Travis
`Salary £700
`
`Vacharf 1%?9291
`
`VacSiop 1?
`Badge YELLOW
`Sia’rus ACTIVE
`
`Office SC
`
`_
`
`§lLVER
`
`90m
`
`Proiecf Nianagemen’r
`Phone 555-4552
`
`Manager Straih, Cycle
`
`FIG. 79
`
`E—afil
`
`
`
`
`
`
`Name
`
`Vac Siar}
`Salary
`Badge Colar-
`
`Vac Sfap-
`EmpLstaius MEI.
`
`Profiecf
`
`Phone Number
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Name —|21
`
`
`l
`_dit
`l—l
`
`
`
`
`0012
`0012
`
`

`

`1
`
`GRAPHICAL DISPLAY OF DATA
`
`5,414, 809
`
`TECHNICAL FIELD OF THE INVENTION
`
`This invention relates to computer processes, and 5
`more particularly to a method of using a computer to
`provide a graphics interface, which displays a graph of
`data and permits the user to modify the data by directly
`manipulating the graph.
`BACKGROUND OF THE INVENTION
`
`10
`
`The use of computers to generate graphical displays,
`which illustrate the relationships of underlying data is
`well known. For example, a computer might be used to
`generate a bar graph to illustrate the relationship be- ‘5
`tween a set of data values taken at difi'erent points in
`time.
`A fairly recent development in computer applications
`is the integration of database management capabilities
`and graphical displays. Both types of applications deal
`with the same database. Various software tools have
`been developed to provide dynamic linkages between
`these different applications.
`However, a common characteristic of these inte-
`grated systems is that data is entered in text form, via
`conventional data entry means. Even when a graphical
`user interface is available for permitting the user to
`directly manipulate objects on a display screen, these
`user interfaces are limited to invoking operating system
`tasks, such as file management, rather than for changing 30
`application data.
`SUMMARY OF THE INVENTION
`
`20
`
`25
`
`4S
`
`A simplified aspect of the invention is a method of
`using a computer to implement a graphical interface 35
`having a single view style for a single type of graph.
`More specifically, the invention is a method of using a
`computer to display a graph illustrating data and to
`permit a user to edit the data by directly manipulating
`the graph. The computer stores a graphics engine, com-
`prised of a set of rules for displaying graphical objects
`and graphical attributes that comprise the graph. The
`computer also stores a local database comprised of user-
`specified records and fields of data, accessible by the
`graphics engine. The computer receiver. specification
`data from the user, in which data fields are matched to
`graphical attributes. The computer receives configura-
`tion data from said user specifying at least one record
`type of records in said Inca] database and at least one
`field of said record, which are to be illustrated with the
`graph. The computer matches each data value of the
`record type with a graphical object. It also matches
`each data value of the fields with a graphical attribute of
`said graphical object. It displays a graph comprised of
`the graphical objects, with corresponding attributes, on 55
`a display screen. It then receives editing input from an
`end user, representing a change to a value of a selected
`field within one of the records. It matches the selected
`field to an attribute of a target graphical object. It
`changes the target graphical object in response to said
`editing input, and updates the local database, such that
`the value of said selected field is reflects said change.
`One enhancement of the invention involve storing
`more than one view style, each having its own graphics
`engine. For each view style there could be multiple 65
`objects and attributes, requiring the user to specify what
`data values are to be matched with those objects and
`attributes. A message passing protocol can be set up
`
`2
`between the graphical interface and a separate database
`system, which supplies data for the local database, and
`is updated with new data values resulting from editing
`of the graph. Commands may be specified so that tasks
`may be performed by other applications during presen-
`tation of a graph.
`One technical advantage of the invention is that its
`graphics engines provide a degree of generality to the
`process of using a computer to display graphic illustra-
`tions of data. For example, for a gantt chart, the graph-
`ics engine may include certain routines that are com-
`mon to all gantt charts, so that for a specific illustration
`of data, the user need only specify what data is to be
`presented.
`Another technical advantage of the invention is that
`it permits direct manipulation of a graph to edit the
`underlying data represented by the graph.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 illustrates the basic components of program-
`ming for innplementing the method of the invention.
`FIG. 2 is a computer system for executing the method
`of the inventiou.
`FIG. 3 illustrates the objects comprising a view style,
`FIG. 4 illustrates components of a graphics engine of
`FIG. 1.
`FIG. 5 illustrates a display screen with a menu line,
`representing menus of tasks performed by the master
`process of FIG. 1.
`FIGS. SA—SD illustrate menus of tasks represented
`by the menu line of FIG. 5.
`FIG. 6 is a dialog box for specifying data to be illus-
`trated by any one or more view styles.
`FIG. 7 is a dialog box for specifying the values of an
`enumeration field type.
`FIG. 8 is a dialog box for specifying associations
`between potential data values and graphical attributes.
`FIG. 9 is a dialog box for specifying linking instruc-
`tions for the link manager of FIG. 1.
`FIG. 10 is a dialog box for specifying commands that
`may be executed during presentation of a graph.
`FIG. 11 is a dialog box for specifying controls that
`may be imposed during presentation of a graph.
`FIG. 12 lists the steps of using a computer to present
`a graph and to accept user manipulations in accordance
`with the invention.
`FIG. 13 is a dialog box for receiving a user‘s choice of
`view styles.
`FIG. 14 illustrates a blank graph.
`FIG. 15 illustrates a dialog box for specifying assoeia-
`tions between data fields and view-specific graphical
`objects and attributes.
`FIG. 16 illustrates a graph generated by one of the
`graphics engine of FIG. 1.
`FIG. 16A illustrates the “edit" tasks performable by a
`graphics engine during presentation of a graph.
`FIG. 16B illustrates the “view” tasks performable by
`a graphics engine during presentation of a graph.
`FIG. 16C illustrates the “commands” tasks perform-
`able by a graphics engine during presentation of a
`graph.
`FIG. 17 illustrates a graph with a graphical object
`having been selected for editing.
`FIG. 18 is a dialog box for receiving the user’s editing
`input.
`FIG. 19 is a second type of dialog box for receiving
`the user’s editing input.
`
`0013
`0013
`
`

`

`3
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`System Components
`
`FIG. 1 illustrates the basic software components of a
`computer-based graphics interface 10 for graphically
`illustrating data retrieved from a database system 11.
`This software resides in the memory of a computer
`system, and when executed, implements the method of
`the invention.
`FIG. 2 is a block diagram of a computer system 20 fbr
`executing the process of the invention. In general, the
`components of the system are conventional computer
`components, and include a general purpose processing
`unit 21, such as one based on the Intel 386 microproces-
`sor. A program memory 22 stores program code. A data
`memory 23 stores data, and may include a mass memory
`for storing a database. The system 20 also has a bit»
`mapped graphics display 24 and input devices, such as a
`keyboard 25 and a pointing means 26.
`One example of a pointing device 26 suitable for use
`with the invention is a trackball-type “mouse”. A user
`moves the mouse to position a cursor on the display
`screen. By depressing or releasing a switch on the
`mouse, the user indicates to the computer when the
`cursor has a position that corresponds to, i.e., “points
`to”, the user’s, selection of an object on the screen.
`Other pointing means 26 could be used, such as a track-
`ball with separate selection keys, or a touch screen
`display. By “selection” of an object or attribute as used
`herein,
`is meant to user’s activity of pointing to the
`object or attribute and indicated his selection.
`The computer system 20 operates under a “windows”
`type operating system 16, such as the Windows system
`manufactured by Microsoft Corporation. Another ex-
`ample of a windows operating system 16 is the UNIX
`Operating system.
`A significant feature of the operating system 16 is that
`it permits computer system 20 to generate multiple
`windows on display 24, each of which corresponds to
`an independent application program. Thus, it permits
`the graphics interface 10 and database system 11 to be in
`execution at the same time.
`The present invention relates to the use of a computer
`system, such as that of FIG. 2, which stores and exe-
`cutes programming for the graphics interface 10 of
`FIG. 1. As an overview of the method of the invention,
`a graphics engine 12 generates a diSplay that illustrates
`a set of data delivered from database system 11. A link
`manager 13 handles message passing between database
`system 11 and graphics interface 10. A local data store
`14 stores data that is the subject of the current display
`being generated by graphics engine 12. The display is
`comprised of distinct graphical objects, each represent—
`ing an item of data. The graphical objects have attri-
`butes, such as color and size, which also represent data.
`If the user desires to change the data, he may either
`enter new data in text form. or use a pointing device to
`directly manipulate the appropriate graphical object.
`Either type of input causes local data store 14 to update
`its copy of the data, and causes link manager 13 to send
`a message to the database system 11 so that its data is
`updated. A master process 15 handles interactions with
`the user, and also permits the user to defme how data
`will be organized in local data store 14 and to specify
`associations between graphical objects and data.
`Database system 11 can be any type of database sys-
`tem, such as one in which data is organized as files,
`
`0014
`0014
`
`5,414,809
`
`4
`records, and fields. It is assumed that database system 11
`has mass memory for storing data and some sort of data
`management programming. Database system 11 may be
`any one of a number of commercially available database
`application programs. However, database system 11
`could be as simple as any collection of data with some
`means for handling data exchanges via a message proto—
`col.
`For purposes of this description, an example of a
`database system 11 for storing and processing employee
`data is used. Each employee record is organized into
`fields of data, each field containing an item of data rele«
`vant to that employee. Some examples of employee data
`fields are salary, vacation time, and length of employ-
`ment.
`
`Graphics interface 10 has at least one graphic engine
`12. Each graphics engine 12 contains a description of a
`unique view style. Examples of view styles are gantt
`charts, tree charts, or bar charts. A typical graphics
`interface II] will have a number of graphics engines 12.
`one for each view style.
`In general, a view style provides for an interactive
`presentation of data, in which instances of user data are
`presented as graphical objects. Each graphical object is
`a rectangular area on a logical display. The primary
`concern of a view style is determining the size and
`position of these graphical objects. Typically, this de-
`termination is on the basis of a data field of a data record
`aSsociated: with the graphical object. Because of this
`relationship between position and size and user data, a
`view style may constrain the kinds of data it can pres-
`ent. Another view style constraint is that the relation-
`ship between objects and the data should lead to some
`sort of intuitive means for manipulating the objects to
`affect the data.
`
`FIG. 3 illustrates an example of the objects of a gantt
`chart view style. An example of a graphic object in. the
`gantt chart 30 is each bar 31, which represents an inter-
`val of time. Another object is each label 32, one each of
`which is associated with a bar 31.
`Using the example of employee data, the gantt chart
`of FIG. 3 is a chart of vacation times. Each object of the
`graph, in this case a bar 31, repreSents a vacation time of
`an employee, whose name is indicated by the label 32 of
`that bar 31. The position and length of the bar 31 indi-
`cate start and stop times of the employee’s vacation.
`Thus, in FIG. 3, two graphical objects represent each
`employee. If Employee B’s vacation time data is the
`value “weel: 2—week 4”, the associated object, i.e., bar
`31, would have a position and length representing that
`data. As an another example, a tree view style might
`have objects in the form of nodes in a tree hierarchy.
`Each graphical object, such as a bar 31 or label 32,
`has one or more attributes. For example, a bar 31 of
`gantt chart 30 may have start position, stop position,
`and color attributes. Labels 32 might have attributes,
`such as its data string, font, or color. Each attribute is
`associated in some manner with data. For example, an
`employee who is currently on vacation might have his
`bar 31 displayed in a red color.
`Thus, the graphics engine 12 for a view style includes
`a description of the view style, in terms of rules for
`displaying objects comprising that view style. In gen-
`eral, the rules for a view style determine layout, i.e.,
`where objects go and how big they are. Appendix A
`sets out a number of rules for a graphics engine 12 for a
`gantt chart view style. Rules for other view styles may
`
`5
`
`IO
`
`15
`
`2t}
`
`25
`
`30
`
`35
`
`45
`
`Si}
`
`55
`
`65
`
`

`

`5,414,809
`
`6
`routing messages by link manger 13. The specification
`process is explained below in connection with FIGS.
`5—11, as a result of which, the stored specification data
`1’? is accessed by master prooess 15. The distinction
`between what is user-specified, as opposed to being
`generated by stored programming, reflects the extent to
`which the programming of graphics interface 10 is re—
`useable. Master process 15 also handles, with the coop-
`eration of a graphics engine 12, the presentation of any
`instance of a view style. The presentation and editing of
`graphs is explained below in connection with FIGS.
`12—19.
`
`FIG. 4 illustrates one architecture for implementing a
`graphics engine 12. Each graphics engine 12 has its Own
`executive 35, which opens a window when the corre—
`sponding view style is selected by the user. It calls for
`routines stored in root library 36 and in rule set 37. Root
`library 36 is shared by all graphics engines 12, and con-
`tains routines that are common to them, such as data
`sorting routines. Rule set 37 contains the rules for the
`view style presented by that graphics engine 12.
`Consistent with the architecture of FIG. 4, master
`process 15 calls for services by a graphics engine 12.
`Master process 15 and the graphics engines’ executives
`35 are separate but dependent processes. The root li-
`brary 36 and rule sets 37 are dynamically linked librar-
`ies. In a whidows environment, master process 15 and
`executive 35 each control their own window. Altema—
`tively, “custom controls” features of the windows pro-
`gramming may be used, so that instead of a window
`being created by executive 35, graphs are created in a
`window of database system 11, which calls routines
`from graphics engine 12.
`FIG. 5 illustrates a diaplay screen 50, which presents
`to the user a selection of tasks performed by master
`process 15. FIGS. 5A—5D illustrate the pulldown
`menus, with selections that represent those tasks. “File”
`tasks, listed in FIG. 5A, are like those of conventional
`applications programs. “Edit” tasks, listed in FIG. SB,
`are explained below in connection with FIGS. 6—11.
`“Linking” tasks, listed in FIG. 5C, set up links among
`subscribing applications. “Views" tasks, listed in FIG.
`51), are explained below in connection with FIGS.
`12—20. “Commands” tasks are explained below in cou-
`nection with FIG. 21. Each of these tasks is interactive,
`in the sense that master process 15 acts in response to
`user specifications. It then forwards these specifications
`to link manager 13, local data store 14, or graphics
`engine 12. In FIG. 5, display screen 50 also displays a
`palette of graphs already created, which may be manip-
`ulated to display those graphs.
`Referring again to FIG. 1, specifications 1? represent
`stored input from the user, entered via the interactive
`“edit" tasks of master process 15. In practical use, the
`“user” who provides these specifications might be a
`software developer, who adds slayer of functionality to
`the graphical
`interface 10. This developer might be
`different
`from the “end user” who actually views
`graphs via the “views” tasks and makes practical use of
`user data from database system 11. However, for pur-
`poses of this description, the word “user” may mean
`either of such persons.
`
`10
`
`i5
`
`20
`
`25
`
`30
`
`35
`
`45
`
`SO
`
`55
`
`5
`be similarly developed to create other graphics engines
`12.
`Creation of an instance of a view style (herein re—
`ferred to as a “graph”) is interactive. As explained be-
`low, the user specifies what data will be mapped to the
`objects and attributes, and in rte-Spouse,
`the graphics
`engine 12 handles the layout in the display screen.
`Referring again to FIG. 1, link manager 13 enforces a
`message exchange protocol, which ensures the that data
`in local data store 14 and in database system 11 are
`consistent. In other words, if an item of data in one
`location is updated, the copy of that data in the other
`location is also update. If the user changes a graph,
`whether by means of textual input or by direct manipu-
`lation of a graphical object, link manager 13 sends a
`message to database system 11. This message contains
`the updated data so that database system 11 can update
`its copy of that data. Likewise, if, during presentation of
`a graph, the user changes data using input means of
`database system 1], link manager 13 sends a message
`containing the new data to local data store 14.
`An example of a message passing protocol suitable for
`use with the present invention is the DDE (dynamic
`data exchange) protocol, developed by Microsoft Cor-
`poration, for windows operating systems. Another ex—
`ample is the “pipes" means for interprocess communica-
`tions, as implemented on the windows interface for
`UNIX Operating systems.
`Messages communicated by link manager 13 are ei-
`ther data messages or executive messages. As an exam«
`ple of a data message, if a user changes a data value with
`input to graphics engine 12, a data message to database
`system 11 would contain the new data and permit the
`data to be “poked” into database system 11. Conversely,
`if a user changes a data value with input to database
`system 11, a data message from database system 11 to
`graphics interface 10 would contain that new data. As
`an example of an executive message, if a user desires to
`a dialog box from database System 11 to appear on a
`graph, this could be accomplished with a command to
`database system 11 and an executive message to graph-
`ics engine 12.
`Local data store 14 stores data in accordance with a
`user-defined schema. This data is a copy of some subset
`of data stored in database system 11. The data in local
`data store are organized as record types, each record
`having one or more fields, and each field being a certain
`type. At least one field ofa record type is a “key” field,
`whose value is unique for each occurrence of a record
`type. For exertiple, each employee’s key field might
`contain that employee’s unique id number. As explained
`below, this organization of data in local data store 14
`permits the data to be mapped to graphical objects and
`attributes.
`.
`A feature of local data store 14 is that it includes a
`routine for receiving an indication from graphics eu-
`gines 12 if the user changes data of the graph, whether
`by textual input or by manipulating an object. If such an
`indication is received, local data store 14 updates its
`copy of the data represented by that object. Also, a
`particular data value might be the subject of more than
`one view style. For this case, local data store 14 pro-
`vides notification tasks, such that when an object is
`changed via one graphics engine 12, other graphics
`engines 12 are notified.
`Master process 15 handles interaction with the user.
`It receives user specification data, such as the organiza-
`tion of data in local data store 14 and directions for
`
`65
`
`Specification Tasks
`FIG. 6 illustrates a dialog box presented by master
`process 15 when the user selects the “Record Types"
`task from the “edit” menu of FIG. 5B. The user’s tex-
`tual input to dialog box 60 permits the user to specify
`
`0015
`0015
`
`

`

`7
`the schema of data in local data store 14. More specifi-
`cally, the user specifies a record type, the fields within
`each record, and the data type of each field.
`In the example of FIG. 6, the user has specified an
`“employee” record type, with a “manager” field, of
`type REF. This means that an employee’s record has a
`field that points to the record of that employee‘s man-
`ager, who is also an employee. This type of data would
`be useful for illustrating organization with a “tree” view
`style.
`If the field type is “enumeration”, the user may spec-
`ify a closed set of values that the field may have. For
`example, FIG. 7 illustrates a dialog box 70 that is pres—
`ented by master process 15 if the user selects the field
`type “enumeration”. The field type “badgecolor” is
`Specified so that the field may have a value that repre-
`sents one of a set of colors. These values will be con—
`stant for all instances of a view style presented by that
`graphics engine 12.
`FIG. 8 illustrates a dialog box 80 that permits the user
`to associate the potential data values of a field type
`“enumeration” to graphical attributes. Dialog box 80 is
`presented in response to selection of the “associations"
`task from the “edit” menu of FIG. SB.
`Using dialog box 80, the user first matches the enu—
`meration type to an attribute type. Then, for each possi—
`ble data value of an enumeration type, the user specifies
`a different instance of an attribute. This mapping is used
`by graphics engines 12 when presenting a graph. An
`object having the specified attribute will display that
`attribute according to the data values. For example, in a
`gantt chart, the bar 31 of an employee might have a
`color attribute that corresponds to that employee’s
`“badgecolor” field value.
`FIG. 9 illustrates a dialog box 90, presented by master
`process 15, if the user selects the “links” tasks from the
`“edit” menu of FIG. 5A. This dialog box 90 permits the
`user to specify the locatiOn of data, which is currently
`stored in database system 11, so that it may be delivered
`to local data store 14.
`FIG. 10 illustrates a dialog box 100 presented by
`master process 15 if the user selects the “commands"
`task of the “edit” menu of FIG. 513. Using dialog box
`100, the user gives the command an identifier, and speci-
`fies the application to which the command is directed.
`The user also enters a command string, such as a BBB
`executive message, to be performed by that application.
`Once a command has been defined, its identifier will
`appear on the “commands” menus of either master
`process 15 and of all graphics engines 12, or only on the
`“commands” menus of certain graphics engines 12. This
`depends on whether the user specifies that the com-
`mand is related to a specific data type. If not, the com-
`mand identifier appears on all “commands” menus. If
`the command is related to a certain data type, the com-
`mand identifier appears as a menu choice only during
`presentation of graphs that use the specified data type,
`as explained below in connection with FIG. 17. This is
`implemented by means of the association, during pre-
`sentation of a graph, of record types and fields to ob-
`jects and attributes, which in turns are associated with
`particular view styles. Further details of commands
`tasks are explained below in the section entitled “Link
`Manager Subscribers".
`FIG. 11 illustrates a dialog box 110, generated by
`master process 15 when the user selects the “update
`control” task of the “edit" menu of FIG. 5B. This task
`permits a user to specify controls over editing of the
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`5,414,809
`
`8
`data of database system 1!. For example, in FIG. 11 the
`user has indicated that certain update controls are to be
`imposed for the record type “employee”. During pre-
`sentation of a graph, these controls will prevent an end
`user from performing the specified updates. Dialog boar
`110 also permits the user to Specify a remote command,
`such that if data is modified via graphics interface 10,
`database system 11 will automatically respond with
`some process rather than simply updating its data.
`As a result of the various editing tasks described
`below, a user, typically a developer user, has created a
`file of specifications data 17. This data 1'? is stored in
`memory 23 for use by graphics interface 10 during pre-
`sentation of a graph for an end user.
`Views Tasks
`
`FIG. 12 illustrates the process of displaying a graph.
`For purposes of FIG. 12, it is assumed that the graphics
`interface 10 and the database system 11 of FIG. 1 are
`currently in execute mode on a computer system and
`that a message passing protocol has been established
`between them. In general, this protocol includes a re-
`ciprocal notification requirement, such that when a data
`value is changed, link manager 13 ensures that loCal
`data store 14 and database system 11 are updated. Speci-
`fications for this message passing are supplied by a user,
`as discussed above in connection with FIG. 9.
`For purposes of example, to illustrate the steps of
`FIG. 12, the user specification process of F

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket