Home

- McGill School Of Computer Science

image

Contents

1. relation Lines has 4 tuples Figure 2 6 The nested relation Graph and its underlying dot relation Lines dr lt rel_name gt To list all the declared relations in the current system the command sr should be used To get the information of a specific relation we do the following sr lt rel_name gt A sample output for the command sr is shown in Figure 2 7 2 2 Relational Algebra 2 2 1 Assignments The assignment operator is used to create new relations from old ones There are two types of assignment in jRelix replacement assignment and incremental assignment The replacement assignment copies the right hand operand to the left hand operand The syntax for the replacement assignment is the following 2 2 RELATIONAL ALGEBRA 19 gt Sr a ea ca Relation Table 55 32 7 222 353 332 E 32 225 Name Type Arity NTuples Sort Active Graph relation 2 2 2 0 Points relation 2 5 2 0 E a Relation Entry 25 2 2 225 Name Type Arity NTuples Sort Active Figure 2 7 Sample output for the command sr lt new_relname gt lt lt expression gt or lt rel L gt lt attr_list_rel_L gt lt lt attr_list_rel_R gt lt rel R gt The syntax for the incremental assignment is the following lt new_relname gt lt lt expression gt or lt rel_L gt lt attr_list_rel_L gt lt
2. 1000 2000 1000 4000 relation Pointsi has 2 tuples gt pr where y1 gt 2005 in Points1 x1 y1 1000 4000 expression has 1 tuple Figure 2 10 Example of a selection operation e T selection The syntax for the T selection operation is the following lt dom_name1 dom name2 gt where lt selection_condition gt in lt source_rel gt T selection is a combination of projection and selection The selection is done first then the projection Figure 2 11 gives an example of T selection operation 2 2 3 Binary Operations The binary operations of relational algebra are extensions of the binary operations on sets Mer84 Binary operations take two relations as input and generate a new relation as output jRelix provides two categories of binary operations join and g join The syntax for join operations is as follows lt expression gt JoinOperator lt expression gt or lt expression gt lt attr_list gt JoinOperator lt attr_list gt lt expression gt 2 2 RELATIONAL ALGEBRA 23 gt pr Points1 x1 y1 1000 2000 1000 4000 relation Pointsi has 2 tuples gt pr x1 where y1 gt 2005 in Points1 4
3. x1 Ho 1000 Ho o expression has 1 tuple Figure 2 11 Example of a T selection operation In the first syntax the two operands join on their common attributes If the two operands do not have any common attributes the second syntax should be used to specify the joining attributes attr_list e u joins p joins correspond to the binary set operations including union intersection and difference In general y joins consist of three parts left center and right Given two relations R X Y and S Y Z sharing a common attribute set Y we have center z y z x y R and y z S left z y DC z y Rand Y z y 2 S right DC y 2 y 2 Sand Y z a y E R Given two relations R W X and S Y Z sharing no common attribute set we have center w x y 2 w x Rand y 2 Sand z y left w z y DC w x R and z y gt VY z y 2 Z S CHAPTER 2 OVERVIEW OF JRELIX right DC x y 2 y z S and z y gt V z w x R Note that the symbol DC stands for don t care a null value defined in jRelix The complete list of u join operators is shown in Table 2 2 Figure 2 12 gives an example of a u join operation Name Operator Definition Intersection join ijoin center Union join ujoin left U center U right Left join join left U center Right join rjoin center U
4. 2148 583 873 1514 873 1514 1363 3013 NewLines lt display2D Lines Figure 4 8 jRelix input for displaying a set of lines 42 CHAPTER 4 USER S MANUAL ON DISPLAY2D Alief bile Serres Seja 22 08 T dila sol SS pa T a iol H N CA O Edit vo EIRA AE F AA My Zoom Grid 1 Hode Figure 4 9 Displaying a set of lines 4 2 5 Displaying a Set of Labelled Lines Say we want to draw the lines from the last example and label each line with a name Similar to the example of labelling points we add a string type attribute label and an integer type attribute lc LabelledLines x1 yl x2 y2 lc label 1363 3013 2942 3010 O linel 2942 3010 3426 1508 0 line2 3426 1508 2148 583 0 line3 2148 583 873 1514 0 lined 873 1514 1363 3013 0 lined Table 4 5 Relation LabelledLines 4 2 EXAMPLES OF DISPLAYING 2D GRAPHS USING FLAT RELATIONS 43 relation LabelledLines x1 y1 x2 y2 lc label lt 1363 3013 2942 3010 0 line1 2942 3010 3426 1508 0 line2 3426 1508 2148 583 0 line3 2148 583 873 1514 0 line4 873 1514 1363 3013 0 line5 NewLabelledLines lt display2D LabelledLines Figure 4 10 Relix input for displaying a set of labelled lines B a amp File Sedit vieu Help 5 Fig House Buttons
5. 4 4 code colour 4 4 1 blue 2 green 3 cyan 4 red 4 relation ColourCode has 4 tuples gt pr Text icomp ColourCode 4 4 4 4 x y label code 4 4 4 4 1000 2000 textl1 1 1000 4000 text2 4 4 4 4 4 expression has 2 tuples Figure 2 13 Example of a o join operation Chapter 3 Overview of Xfig In this chapter we give a brief introduction to the Xfig system and the Xfig file format We will only focus on the parts of Xfig that are related to the implementation of the display2D operation 3 1 Introduction Xfig is an open source vector graphics editor It runs on the X Window System on most UNIX compatible platforms In Xfig figures can be drawn using basic objects such as circles arcs polygons lines spline curves text etc Images in formats such as GIF JPEG and EPSF PostScript can be imported into the graph The objects can be created deleted moved or modified Attributes such as colours or line styles can be selected in various ways Xfig saves figures in its native text only Fig format but they may be converted into various formats such a
6. NewText2 lt display2D Text Vocabulary Text2 66 Multiple text strings in the relation Picture 73 Displaying multiple text aoaaa a 73 Nested relation Graph and its underlying dot relations 76 A tree structure representation for the nested relation Graph 76 Algorithm for the function dispNestedRel 78 An open polyline ui a A o ke 80 Algorithm for the function run in detectFileDiffThread java 83 Xfig File fora P lylhe gt hd a a a eet Ss 84 A sample original Xfig file representing non polylines 85 A sample updated Xfig file representing non polylines 86 An algorithm for detecting violations to Rule 2 87 Xfig file for three points iia ees a eA SS AO SLE A 89 Relation UpdatedPoints3 a 2 a s0vi5 edb ia me ota bre Br ead de 98 Polymorphic relation UpdatedPoints3 4 98 LIST OF FIGURES 6 3 jRelix input for displaying the matrix form of the relation Chair 6 4 Matrix form of the relation Chair List of Tables 2 1 2 2 2 3 3 1 3 2 3 3 3 4 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 4 13 4 14 4 15 5 1 5 2 5 3 5 4 6 1 6 2 6 3 6 4 6 5 The display form of the nested relation Graph 17 MEJO OPErAtOTS nc 6 a aw 4k oe Wk bale ad ent eed oe ee eS 24 O JOI OPETADOLS ar are go ra eb ae oe ee ee 25 Xfiefileheader e AE AE e ls os SS 29 Type 2 Xfig Object Format 4
7. 1 1 INFORMATION VISUALIZATION 5 having more than three orthogonal axis is impossible in three dimensions In the parallel coordinate system the axes are represented by parallel and equally spaced straight lines in a plane Several multi dimensional geometric shapes such as points lines etc can be displayed by using the parallel coordinates The parallel coordinate system can be found in applications for air traffic control robotics computer vision computational geometry statistics and instrumentation Ins90 There are many other interesting approaches to multi dimensional data visualiza tion For example there is Table Lens RC94 a spreadsheet like tool for visualizing a table much larger than the tables supported by conventional spreadsheets Table Lens displays a table by using the focus context fisheye mechanism which allows users to see the global graphical presentation of the table and to zoom in on spe cific table cells There is also the HomeFinder W592 an application allowing users to do dynamic database searches to provide multi dimensional real estate data vi sualizations Additionally a commercial software product called Spotfire provides multi dimensional data visualization for various areas such as life science engineer ing finance etc It is also a system based on the concept of interactive dynamic queries Its users can interactively query filter zoom and pan visualizations Ah196 Temporal Data
8. Network data refers to objects linked to an arbitrary number of other objects Since there can be multiple paths between two objects nodes a network can be very com plicated Therefore network data visualization is an essential tool for understanding the network structure Becker Eickt and Wilks BEW95 proposed three techniques linkmap nodemap and matrix display to visualize an American network of telecommunication traffic on a geographical map The linkmap technique works as follows On a map ac cording to the geographical relationship of two nodes a coloured line is drawn to connect the nodes However there may be too many links causing a map clutter problem Therefore an alternative approach to visualize the network is presented The nodemap displays node data by showing a symbol such as a circle or a square at each node on the map with an aggregation of node information The nodemap solves the display clutter problem but it loses detailed information about particular links Like linkmap the matrix display concentrates on the links of a network It uses a visual prominence for longer line links The longer transcontinental linkage lines may overplot other lines Matrix display gives a better graphical presentation than linkmap when there are many lines on the display map BEW95 Three dimensional visualization is mostly used for network data Various visual izations are developed to show the World Wide Web The Natto Vie
9. aves 2 4 2 ee aid ww eld Example of a g join operation 40s bs Aa we eae ee Xfig display window de Ake Beads A A Sample Xfig file header sida 4 ta ae ae We te Beene Sample Xfig code for a line sy ee a ta Aa Sample Xfig code for a text string ooo a a Sample Xfig code for a compound object A complete Xfig Tle 445 0378 A lA RA cs E E a ge te jRelix input tor displaying text aria aa a Displaying text lt a sa Gwe Beige a At IS A jRelix input for displaying points Displaying points A ee hee ee ke gees ek ae a jRelix input for displaying labelled points Displaying labelled points sno doe Big de BG Rae a jRelix input for displaying a set of lines Displaying a set of lines dla Sg ea fae a ek i is i eh jRelix input for displaying a set of labelled lines Displaying a set of labelled lines vil viii 4 12 4 13 4 14 4 15 4 16 4 17 4 18 4 19 4 20 4 21 4 22 4 23 4 24 4 25 4 26 4 27 4 28 4 29 4 30 4 31 4 32 4 33 4 34 4 35 4 36 5 1 5 2 5 3 5 4 5 9 5 6 5 7 5 8 5 9 5 10 5 11 5 12 5 13 5 14 5 15 6 1 6 2 LIST OF FIGURES jRelix input for displaying a set of triangles 44 Displaying a set of triangles ias ee eh ee aoe See ew Gok ty 45 jRelix input for displaying a set of labelled triangles 46 Displaying a set of labelled triangles 00 4
10. Expression jjtThis set OP_DISP2D OP_DISP2D We define Display2D as a nonterminal The grammar is lt DISP2D gt Expression Expression The root node in the parser tree is named disp2D e void Primary void Token t Display2D We add the nonterminal Display2D into the specification of Primary This guarantees that lt DISP2D gt Expression Expression isan expression 5 1 3 Examples of the Display2D Syntax Tree Recall that from section 4 2 1 we draw three text strings by calling NewText lt display2D Text The syntax tree for this input is shown in Figure 5 2 In section 4 4 we draw the same three text strings by calling NewText2 lt display2D TextVocabulary Text2 where TextVocabulary is a vocabulary relation defined by the user The syntax tree is shown in Figure 5 3 5 1 4 evaluateDisplay2D Algorithm EvaluateDisplay2D is a function included in the Interpreter java file It evaluates the following relation expression defined as the display2D syntax in section 4 4 66 CHAPTER 5 IMPLEMENTATION OF DISPLAY2D disp2D ma Figure 5 2 Syntax Tree for NewText lt display2D Text TextVocabulary Figure 5 3 Syntax Tree for NewText2 lt display2D TextVocabulary Text2 5 1 OVERVIEW 67 display2D VocabularyExpression GraphExpression The evaluateDisplay2D function returns a new relation If the original d
11. In section 4 3 1 we had shown an example of a text string displayed in the centroid of a closed polyline having no self intersection To find the coordinates of the centroid of such a polyline we first calculate the area of the polyline from Formula 1 shown below Then we use Formulas 2 and 3 to get the centroid coordinate x and centroid coordinate y The coordinates of the beginning of the text string are e Ye Formula 1 Area IN iyi H Diva Formula 2 x Ea ae Era ea hada 80 CHAPTER 5 IMPLEMENTATION OF DISPLAY2D Formula 3 Ye a Die Yi Yi iin City If the polyline has no self intersection and is open as shown in Figure 5 9 we just simply connect vertex V1 and V6 by an imaginary line Therefore we can apply Formula 1 to calculate the area and get the coordinates of the centroid from Formula 2 and 3 v1 V6 V5 V2 V4 V3 Figure 5 9 An open polyline Text and Points Table 5 1 presents a nested relation NestedPoints which contains three black points and a text string Three Points We need to determine the coordinates of the text string In this case we require that for the text string the x coordi nate is the average of the x coordinates of all the corresponding points and the y coordinate is the average of the y coordinate of all the corresponding points Therefore the text string Three Points has coordinates 3000 2000 NestedPoints
12. LabelledTriangle NestedPolyline Polyline Figure 5 7 A tree structure representation for the nested relation Graph 5 3 DISPLAYING 2D GRAPHS USING NESTED RELATIONS TT of the tree To determine the type of Relation r the function rel_ Type uses the following concepts Root must have no attributes with name id Intermediate node must have an attribute with name id and at least one attribute other than the attribute named id with type IDLIST Leaf node must have an attribute with name id and must have no other attributes with type IDLIST Figure 5 8 gives the detailed algorithm for the function dispNestedRel There are three parameters passed to the function String s is the name of the nested relation r which stores the graphical information and will be displayed Relation Vocab is the relation that stores the vocabulary information Long id is for the surrogate number or the values of the attribute id in the relation r Note that since the top level root node relation has no attribute named id and the minimum surrogate number for a nested relation is 1 we use a value 0 for the long id field In our example after the relation Graph is detected as a nested relation dispNestedRel Graph vocabulary 0 is called vocabulary is the system built in vocabulary relation In the dispNestedRel algorithm we first determine that the relation Graph is a root node by using th
13. Type 2 4 and 6 Xfig objects are relevant to our implementation of the display2D operation therefore we will introduce only these three types Type 2 Xfig Object Type 2 Xfig objects include points lines boxes and polylines open closed To describe a type 2 Xfig object according to the official Xfig documentation SS02 we need two lines of Xfig code The first line contains the values of all the parameters from Table 3 2 in order with each value separated by a blank character The second line beginning with a tab character t gives the coordinates of each point in the graph in the order that they are drawn For example to display a solid red line with a thickness of 2 screen pixels and with start point 4000 1500 and end point 3000 3500 the Xfig code for this line should have the format shown in Figure 3 3 3 2 NATIVE FIG FORMAT 31 Type Parameter Description Default Name Value int object_code always 2 2 int sub_type 1 polyline 1 int line_style enumeration type line style 0 int thickness unit 1 80 inch or 1 screen pixel 1 int pen colour enumeration type pen colour 0 int fill colour enumeration type fill colour 7 int depth enumeration type layer depth 50 int pen _style always 1 not used 1 int area fill enumeration type 1 fill colour pattern 1 no fill float style_val distance between the dots for 0 000 dash line unit 1 80 inch If solid line
14. 4 6 d s4 S wa eS ale Swe be Be De 31 Type 4 Xfig Object Format cis a 33 Type 6 Xfig Object Format a a ha ee bs 34 Relation Text us os sd we id eS e e e 36 Relation Points eeo A a RI eS 38 Relation LabelledPoints da a ae aa 39 Relation AA A O O 41 Relation LabelledLines 0 de Ne e eL ARA 42 Relation Triangle tddi da a a Beaded EL 44 Relation Labelled Triangle 0 o 45 R lation Polyli e s su ects e O AA PL epee AR A a ae 47 Relation LabelledVertexPolyline o o 48 Relation NestedPolyline o o 50 Nested relation Graph 2 29 deseas e ts es 52 Relation ext eang A we aS we e da e 55 Relation TextVocabulary si A A AAA A 55 Relation NewTriangle gt ete ade eee a eo et wwe ed 57 Relation NewTriangle after update 61 Relation NestedPoints dl A AAN EN 80 Relation NestedLines ooa a a a 81 Relation NestedTriangles jcc fae a la a 82 A relation represented by the Xfig file from Figure 5 15 90 A vocabulary relation for ellipses and circles 93 Spline types te Sse ee ee Gh oe Gear cae eae eae ee eee he 94 A vocabulary relation for splines o oaa a 94 A vocabulary relation for arcs als See Poe ee a 94 A vocabulary relation for the polar coordinate system 95 LIST OF TABLES xi 6 6 A vocabulary relation for cartlshow and cart2show 96 6 7 Relation LabelledPoints2 ds tr a dla eh 96 6 82 Relat
15. Assignment operations 2 2 RELATIONAL ALGEBRA 21 The syntax for the projection operation is the following lt dom_name1 dom_name2 gt in lt source_rel gt The projection operation extracts a subset of a source relation source_rel based on a list of specified attributes dom name1 dom_name2 Dupli cate tuples are removed from the result relation An example of a projection operation is shown in Figure 2 9 gt pr Points1 x1 yt 1000 2000 1000 4000 relation Pointsi has 2 tuples gt pr x1 in Points1 x1 4 1000 4 expression has 1 tuple Figure 2 9 Example of a projection operation e Selection The syntax for the selection operation is the following where lt selection_condition gt in lt source_rel gt This operation selects a set of tuples from a source relation source_rel accord ing to a boolean condition selection_condition Each tuple in the source relation is evaluated by the boolean condition Only those tuples that evaluate to true will be selected The resulting relation has the same attributes as the source relation An example of the selection operation is shown in Figure 2 10 22 CHAPTER 2 OVERVIEW OF JRELIX gt pr Points1 x1 y1
16. ah ee ees ha eae ee Bar ue oe By 91 6 25 F t re Works 2d dvd da ae ae ale Bee ed Se ee A 92 6 2 1 Further Xfig Object Implementation 92 6 2 2 Polar Coordinates ETS A Bh le RARA 94 62 3 Text Length sa nyrst at ie Stine hee ee lie elke E 95 6 2 4 A Simpler Method to Label Points with Their Coordinates 95 6 2 5 Extending Display Update ae ici ook be do 96 Oia Conclusions s teo A A ata Rate 99 A Keywords in Display2D 102 Bibliography 105 List of Figures 1 1 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2 13 3 1 3 2 3 3 3 4 3 9 3 6 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 A linear model for generating a graphical visualization from relational QA se ce rado tea ic cee ee ead e als Oe at oe en AS Beene a ee An example of domain declaration 0 2 00404 Sample output for the command sd 4 5 4 2 hae Aa as Declare the flat relation Points 0 00004 Content of the file Points 002 00 La wes Ad ee Beak AS eek Declare the nested relation Graph The nested relation Graph and its underlying dot relation Lines Sample output for the command sr 0004 Assignment operations o a are aia ee nek eek Example of a projection operation 4 0026 4 40 acne ata pe Example of a selection operation o Example of a T selection operation o Example of a u join operation
17. gig asa sti Len 1 00cn S P Q 5 0 T Ae EEES EIE HAL Zoom Grid 1 Mode Figure 4 11 Displaying a set of labelled lines 44 CHAPTER 4 USER S MANUAL ON DISPLAY2D 4 2 6 Displaying a Set of Triangles To display a set of triangles the coordinates of the three points of each triangle must be provided For example say we want to draw two triangles The first triangle is drawn with a blue border a yellow filling colour and vertical lines as the filling pattern The other triangle is drawn with a yellow border a blue filling colour and vertical lines as the filling pattern Other than the attributes 21 y1 12 y2 13 y3 which give the coordinates of the three vertices we must create three more integer type attributes lc fc and fp Ic stores the border colour fe stores the filling colour and fp stores the filling pattern Note that in Xfig colours are represented by integers A value of 1 indicates blue whereas a value of 6 indicates yellow The filling pattern is also associated with integer values In this case a value of 50 indicates vertical lines Refer to Appendix A Table A 1 for more information Triangle xl yl x2 y2 x3 y3 le feo fp 5000 4000 2000 4000 5000 3000 1 6 50 3000 1000 5000 1000 5000 2500 6 1 50 Table 4 6 Relation Triangle domain x1 y1 x2 y2 x3 y3 lc fc fp intg relation Triangle x1 y1
18. label Points x y le 1000 1000 0 Three Points 2000 1500 0 6000 3500 0 Table 5 1 Relation NestedPoints 5 3 DISPLAYING 2D GRAPHS USING NESTED RELATIONS 81 3 Text and Lines Table 5 2 presents a nested relation NestedLines which contains three black lines and a text string Three Lines We need to determine the coordinates of the text string In this case we require that the coordinates of the text string are the average of the coordinates of the middle points of all the corresponding lines For the relation NestedLines the middle points for the three lines are 2000 2000 3000 2000 and 4000 2000 Therefore by taking the average the text string Three Lines has coordinates 3000 2000 NestedLines label Lines x1 yl x2 y2 ilc 1000 2000 3000 2000 0 Three Lines 2000 3000 4000 1000 0 3000 1000 5000 3000 0 Table 5 2 Relation NestedLines 4 Text and Triangles Table 5 3 presents a nested relation NestedTriangles which contains a text string Three Triangles and three triangles with a black border colour and a white filling colour We need to determine the coordinates of the text string In this case we require that the coordinates of the text string are the average of the coordinates of the centroids of all the corresponding triangles For the relation Nested Triangles the centroid points for the three t
19. line If npoints is 4 it represents a triangle 4 is used instead of 3 because a triangle is a closed shape This is a requirement enforced by Xfig If npoints is greater than 4 it represents a polyline In the Xfig code of a type 2 Xfig object the value of the last number in the first line represents npoints To determine whether there are new shapes introduced to the original graph we skip the first nine lines of the Xfig header Then in the updated Xfig file shown in Figure 5 13 we compare the last number in each line starting with a character 2 object type code for type 2 Xfig objects which is always the first character in the first line of a type 2 Xfig object code to the last number in the first line starting with a character 2 in the original Xfig file shown in Figure 5 12 If there is a difference it indicates there are other objects Therefore these updates would violate Rule 1 In our example the updated graph represented by the Xfig code in Figure 5 13 violates Rule 1 since a new shape with a value of 1 for npoints appears FIG 3 2 Landscape Center Metric Letter 100 00 Single 2 1200 2 210107 50 1 1 0 00000 1002 2000 3000 2000 1000 210107 50 1 1 0 00000 1002 1000 4000 5000 3000 Figure 5 12 A sample original Xfig file representing non polylines Rule 2 Updating must be done without introducing any new attribute into the relation when adding deleting or modifying
20. not equal it indicates that the current tuple does not belong to the current nested relation tree If they are equal we examine the attributes of the relation NestedPolyline until we find that the attribute Polyline has type IDLIST and is not named id Then we recursively call the function dispNestedRel Polyline vocabulary 2 where 2 is the value of the cell located at row 1 column 4 in the relation NestedPolyline as shown in the Figure 5 6 Now we use the dispNestedRel algorithm to analyze the relation Polyline After we detect that it is a leaf node we simply call drawRel Polyline vocabulary 2 for drawing a flat relation Note that even though Polyline is a flat relation it is still part of a nested relation tree and therefore we require the surrogate to be passed to the function drawRel In this case the surrogate is 2 This guarantees that only the tuples belonging to the current nested relation tree are selected If a flat relation is not part of a nested relation tree i e has no attribute id we will pass 1 instead of the surrogate to the function drawRel Following the same idea illustrated above the function dispNestedRel will traverse the remaining branches of the tree calling the function drawRel when leaf nodes are detected The function drawRel will use the exact same method described in section 5 2 to display the leaf node relation However there are four special cases 1 Text and Polyline
21. points lines or triangles or modifying a polyline CHAPTER 5 IMPLEMENTATION OF DISPLAY2D FIG 3 2 Landscape Center Metric Letter 100 00 Single 2 1200 2 210107 50 1 1 0 00000 1002 2000 3000 2000 1000 210107 50 1 10 00000 1001 500 2000 Figure 5 13 A sample updated Xfig file representing non polylines To determine the existence of additional attributes that violate Rule 2 we compare the first 15 numbers in the first line of each Xfig object to the corresponding default values of a type 2 Xfig object shown in Table 3 2 An algorithm for this step is given in Figure 5 14 Rule 3 Updating does not support any changes to nested relations or any relations containing Text To determine that the original graph is from a nested relation we examine the value of the global boolean variable nested mentioned in section 5 1 4 If it is true it indicates a nested relation To determine if the original graph contains text objects i e non type 2 Xfig objects we invoke a function called isPolyline The function isPoly line reads an Xfig file as input and returns a boolean value that indicates whether the Xfig file contains objects other than type 2 Xfig objects The algorithm for the function isPolyline is simple We skip the first nine lines of the Xfig file header Then we check the first character in each following line if it is not equal to 2 object type code for type 2 Xfig objects a
22. support and encouragement to pursue my interests without which it would be impossible for me to have achieved so much Last but not least I owe special thanks to Jared Tanner for his endless love constant support and understanding during my study lv Contents Abstract R sum Acknowledgments 1 Introduction 1 1 Information Visualization a a a 1 1 1 Static Information Visualization 0 0 0 1 1 2 Interactive Information Visualization 1 2 Relational Database System be pack te si ld 1 2 1 Relational Model 0 0 0 00 0 00000000000 1 2 2 TRES Bie Se aes A ed AN Se Rake Se Rak SS 1 Motivation acir cee lade ee ee se es kee ee les al 1 4 Thesis Outline ata a Ph ae eh A a 2 Overview of jRelix 2 Declarations s hae is a A Re es ee 2 1 1 Domain Declarations 0 0 0 0 0 00048 2 1 2 Relation Declarations 0 0 0 0 0 0048 2 2 Relational Algebra os 0 6 hci A alee s a a ito EI 222 Unaty Operations o e A A A es Rae a 2 2 3 Binary Operations ets Mig Wd is ds A 3 Overview of Xfig 321 Introductions a a a a e a See be 9 2 Native Fig Format di a A e sa wr we as Sa AN TS A A A Rarden er atest Or Objects 201 La id AAA dl 4 User s Manual on display2D A a A oak xe WY go go aa eee a ar nds ah 4 2 Examples of Displaying 2D Graphs Using Flat Relations 4 2 1 Displaying Text io te aah Sk Gt ee Sees ee Se en ne AP het vi CONTENTS 122 Displaying a Set of Point
23. system surrogate number and group the similar objects in the graph into dot relations Moreover we would have to be concerned with the name of each newly created dot relation Recall that in section 2 1 2 we mentioned that the dot relations are invisible i e not shown in the system relation table However we have to pick up a name which is not being used in the current relation table In addition the user has to be notified about the name of all the dot relations This is a fairly complicated process Because of all these difficulties further research is needed All the unsolved cases are open for discussion 6 3 Conclusions The display2D operation in jRelix provides an extensive ability for handling interac tive information visualization The display2D operation also provides flexibility with additional user defined vocabulary relations which allow users to provide alternate names for attributes so that they can better describe the graphs they represent Users can invoke display2D to visualize relations which contain basic geometric shapes such as points lines polylines triangles and text Moreover display2D can be used to vi sualize many arbitrary relations An example application of such is the visualization of the matrix form of a Bill of Material BOM problem which follows To assemble a chair we need a front part and a back part The front part contains a seat two legs and two screws The back part has a rest two
24. text But we could implement the remaining Xfig object types type 1 3 and 5 with the following suggested formats Type 1 Ellipse which is a generalization of circle A general format for the relation representing ellipses and circles can be the following Ellipses cx cy rz ry The attributes cx cy rx and ry are integers cx cy are the coordinates of the center of the ellipse rx and ry are the horizontal and vertical radii For circles rx and ry have the same value We also need to declare the meaning 6 2 FUTURE WORK 93 of the attributes cx cy rr and ry in a vocabulary relation as shown in Table 6 1 Like the keyword cart1 mentioned in the earlier chapters cartlcenter cart2center cartlradius and cart2radius will be the system built in key words attribute meaning cx cartlcenter cy cart2center rx cartlradius ry cart2radius Table 6 1 A vocabulary relation for ellipses and circles Type 3 Spline which includes closed open approximated interpolated x spline spline A general format for the relation representing one spline can be the following Spline x y splsq spltype Similar to the polylines from section 4 2 8 the coordinates and sequence number of each control point in a spline must be provided x y are the coordinates of the control point splsq is the sequence number for the control points We need an additional attribut
25. the properties of information graphics are colour texture and scale For example LiftLines PMR 96 uses coloured lines text and coloured rectangles to record an individual s history HomeFinder WS92 uses coloured points a textured area and text to represent the information on houses for sale Cone Cam Tree RMC91 uses ellipses two arcs to represent the projection of the bases of three dimensional cones on to a two dimensional textured plane jRelix as a high level database programming and query language is proposed to provide applications in various areas such as expert systems numerical computing data mining information visualization etc In order to enable jRelix to visualize information it is necessary to implement the mechanism for the drawing of basic graphical objects Static graphical representation of information has improved our understanding and recognition of complex data sets But our ability to understand graphical informa tion can be even better with user interactivity in visualizations For example with Cone Cam Tree RMC91 users can select a node and the whole Cone Cam Tree ro tates to bring the selected node to the front of the view In Natto View SM97 users can select a node lying in a two dimensional plane and lift it up Then all of the links to the selected node are raised simultaneously All of these techniques give users in sight into the visualizations However users are limited to manipulating the
26. x2 y2 x3 y3 lc fc fp lt 5000 4000 2000 4000 5000 3000 1 6 50 3000 1000 5000 1000 5000 2500 6 1 50 NewTriangle lt display2D Triangle Figure 4 12 jRelix input for displaying a set of triangles 4 2 EXAMPLES OF DISPLAYING 2D GRAPHS USING FLAT RELATIONS 45 PX Kj Iig 5 ES Don t show depth nanager 1 O Figure 4 13 Displaying a set of triangles 4 2 7 Displaying a Set of Labelled Triangles To draw the triangles from the last example with labels in their centroids we only need to add a string type attribute label since Ic fe and fp are the attributes describing the properties of a triangle LabelledTriangle xl yl x2 y2 x3 y3 lc fc fp label 5000 4000 2000 4000 5000 3000 1 6 50 Tril 3000 1000 5000 1000 5000 2500 6 1 50 Tri2 Table 4 7 Relation LabelledTriangle 46 CHAPTER 4 USER S MANUAL ON DISPLAY2D relation LabelledTriangle x1 y1 x2 y2 x3 y3 lc fc fp label lt 4 5000 4000 2000 4000 5000 3000 1 6 50 Tril 3000 1000 5000 1000 5000 2500 6 1 50 Tri2 NewLabelledTriangle lt display2D LabelledTriangle Figure 4 14 jRelix input for displaying a set of labelled triangles sa A GA BBE House Buttons 000 Aes Scat EE mt Figure 4 15 Displaying a set of labelled triangles 4 2 EXAMPLES OF DISPLAYING 2
27. x3 y3 Ic fe fp x y sq label P1 1363 3013 1 2942 3010 0 3426 1508 5000 4000 2000 4000 5000 3000 1 6 50 Tril 2148 583 873 1514 1363 3013 3000 1000 5000 1000 5000 2500 6 1 50 HD ov amp w bw Tri2 Table 4 11 Nested relation Graph domain Polyline x y sq domain NestedPolyline label lc Polyline domain LabelledTriangle x1 y1 x2 y2 x3 y3 lc fc fp label relation Graph NestedPolyline LabelledTriangle lt C Pi 0 1363 3013 1 2942 3010 2 3426 1508 3 2148 583 4 873 1514 5 1363 3013 6 1 5000 4000 2000 4000 5000 3000 1 6 50 Tri1 3000 1000 5000 1000 5000 2500 6 1 50 Tri2 NewGraph lt display2D Graph Figure 4 22 Relix input for displaying a combination of different shapes 4 4 DISPLAYING A GRAPH WITH A VOCABULARY RELATION 53 A My Diy JE Pedir Bview SHelp 11 fig Mouse Buttons Don t show depth nanager td a Sip volo i E Figure 4 23 Displaying a combination of different shapes 4 4 Displaying a Graph with a Vocabulary Rela tion The formal syntax for the display2D expression is the following display2D VocabularyExpression GraphExpression sa amMammII A relational expression Notice that the VocabularyExpression is optional In fac
28. 00 500 200 700 400 300 Table 6 8 Relation Points3 UpdatedPoints3 UpdatedPoints3 x y le x y Ic 100 500 4 100 500 4 200 700 DC 200 700 0 400 300 DC 400 300 0 a b Figure 6 1 Relation UpdatedPoints3 Solution 2 Use polymorphic relations Polymorphism allows the same definitions to be used with different types of data resulting in more general and abstract implementations By using the polymorphism concept the updated relation UpdatedPoints3 shown in Figure 6 2 consists of two relations which combine polymorphi cally into one relation One is a relation containing the point with updated colour The other relation contains the original points with the default colour UpdatedPoints3 x y x y le and 200 700 100 500 4 400 300 Figure 6 2 Polymorphic relation UpdatedPoints3 6 3 CONCLUSIONS 99 e Updates changing a flat relation to a nested relation Any updating that changes a flat relation to a nested relation which violates the updating Rule 1 in section 4 5 is not supported by the current imple mentation For this case there are several difficulties A nested relation contains a root relation and its underlying dot relations They are connected by the surrogate number To create a nested relation based on an updated flat relation we would need to trace the
29. 00 4000 2000 4000 2000 4000 5000 3000 5000 3000 NewText lt display2D Text Figure 4 2 jRelix input for displaying text After the system has processed the statements from Figure 4 2 as input an Xfig window displaying the text strings appears as shown in Figure 4 3 If the user closes the Xfig window without changing the picture Text will be assigned to NewText Note that a user can customize display properties by defining attributes in a re lation such as text colour text font text font size line colour filling colour etc Default values are used where custom properties are not declared The default colour is black the default font is Times Roman and the default font size is 12 0 MA Mighty Ele CEC Fie TEBA SPIA A T ES 0 0 Copy g 53 OB A amp tS E Update Edit Fo O on 1 Hade House Buttons 9 10cn 11 12 1 zoo sooo LE Y gt Figure 4 3 Displaying text 38 CHAPTER 4 USER S MANUAL ON DISPLAY2D 4 2 2 Displaying a Set of Points To display a set of points the coordinates of each point must be provided For example if we want to draw three points with coordinates 5000 4000 2000 4000 and 5000 3000 the relation containing them is shown in Table 4 2 Points x y 5000 4000 2000 4000 5000 3000 Table 4 2 Relation Points domain x intg domain y intg relatio
30. 15 a OOO SEE 1 point L Ae 3 945 3 945 cn na x ae m El Ela bar ay Al DE ES 21 89 73 441 5220 Eso TE fo Er ane Figure 4 34 Adding a line to the graph New Triangle xl yl x2 y2 x3 y3 lc fe fp 5000 4000 2000 4000 5000 3000 1 6 49 3000 1000 1000 1000 1000 2500 6 1 50 4455 2070 3417 751 2793 2309 0 7 1 Table 4 15 Relation NewTriangle after update 62 CHAPTER 4 USER S MANUAL ON DISPLAY2D Here is an example showing a violation of Rule 3 Recall that in section 4 3 2 we draw two labelled triangles and a labelled polyline from a nested relation named Graph by calling NewGraph lt display2D Graph Now after adding a rectan gular shaped polyline to the graph and saving the changes the warning message shown in Figure 4 36 appears Note that if the user ignores the error message and closes the Xfig window the relation NewGraph will be equal to the unmodified rela tion Graph soy a 7 530 AN 99 EE Delete Update Edit ca 3 R EAR x epth PenColor FillColor Fill MES SE Figure 4 35 Adding a box to the graph x X Mamo ME Currently Updating any shape other than polyline and updating nested relation are not implemented Minimize this popup window fix the error then maximize this window and click the button If quit now the changes you made won t be saved Figure
31. 4 F 1363 F3013 F 2148 F583 F 2942 F3010 F 3426 F1508 F Figure 2 4 Content of the file Points Either syntax could also be followed to declare and initialize a nested relation Table 2 1 shows the nested relation Graph Its declaration and initialization are shown in Figure 2 5 Only the very top level relation e g Graph is initialized during a nested relation declaration However as mentioned in the last section 2 1 1 once a nested domain is declared a corresponding invisible relation which has a name beginning with a is created In this example relation Lines is created 2 1 DECLARATIONS 17 Graph label Lines xl yl x2 y2 groupl 2000 1000 3000 1000 5000 3000 1000 2000 group2 1500 500 10000 3000 2000 2000 1500 3000 Table 2 1 The display form of the nested relation Graph relation Graph label Lines lt group1 2000 1000 3000 1000 5000 3000 1000 2000 group2 1500 500 10000 3000 2000 2000 1500 3000 3 Figure 2 5 Declare the nested relation Graph To reveal the data stored in any relation we use the command pr In Figure 2 6 the contents of the relation Graph and its underlying dot relation Lines are printed The top level relation Graph and its underlying dot relation s Lines are linked by surrogate numbers In the top level relation the surr
32. 4 36 Popup warning message Chapter 5 Implementation of display2D In this chapter we will describe the implementation of the display2D operation Section 5 1 gives an overview of the whole implementation including the overall architecture of the current jRelix system the implementation of the display2D syntax the display2D syntax tree the evaluateDisplay2D algorithm and the XfigObj class Sections 5 2 and 5 3 describe the detailed implementation of displaying flat and nested relations The implementation of updating the display is given in section 5 4 5 1 Overview 5 1 1 System Architecture The system used to run display2D contains four parts the Parser the Interpreter the Execution Engine and the Xfig application The Parser the Interpreter and the Execution Engine are built into the jRelix system The Xfig application is not included in jRelix but is required by the display2D operation to display a relation As shown in Figure 5 1 jRelix input from the user is first accepted by the parser which parses it and generates a syntax tree This parser is created by Java Compiler Compiler Java CC SDV04 which reads compiles grammar specifications and generates a parser JJTree SDV04 is a preprocessor for JavaCC The output of JJTree is run through JavaCC to create the parser 63 64 CHAPTER 5 IMPLEMENTATION OF DISPLAY2D User Input Parser Syntax Tree Interpreter Xfig Me
33. 6 jRelix input for displaying a sequenced polyline 47 Displaying a sequenced polyline 0 00 eae 48 jRelix input for displaying a sequenced polyline with labelled vertices 49 Displaying a sequenced polyline with labelled vertices 49 jRelix input for displaying a sequenced polyline with a label in its centroid 50 Displaying a sequenced polyline with a label in its centroid 51 jRelix input for displaying a combination of different shapes 52 Displaying a combination of different shapes 53 Print relation vocabulary acces tl era ts AOS ASES 54 jRelix input for displaying Text2 using Assignment 56 jRelix input for displaying Text2 using Projection 56 Projection tes lt rt Beara e ee he ae e eS 56 After flipping the top triangle 04 4 2 404 4 aS Ale Bie Ae Md 58 After drawing a new triangle ss ao ase kon elas eb Oe we PO won 58 After changing the filling pattern of the bottom triangle 59 After changing the border width of the bottom triangle 60 Popup error message 1 Lis pa Seite de Ap eh Ba Bile a e 60 Popup error message 2 a a A eh ke dae ee 60 Adding a line to the graph 00 200004 61 Adding a box to the graph acarrea Gos Boke On RO SS 62 Popup warning message how ae ack Aa elas ak ee eae 62 System ATCHILGCUUING lt ie bbe eee DEE A E RS 64 Syntax Tree for NewText lt display2D Text 66 Syntax Tree for
34. A Generalized Two Dimensional Display Editor for Relations Lili Zhu School of Computer Science McGill University Montr al Qu bec Canada December 2005 A thesis submitted to McGill University in partial fulfilment of the requirements of the degree of Master of Science T H Merrett Advisor Copyright Lili Zhu 2005 Abstract This thesis discusses the design and implementation of a two dimensional display editor display2D for a relational database programming system jRelix The purpose of this thesis is to integrate relational data visualization into jRelix The graphical information for any basic geometric shape such as points lines polylines triangles and text can be stored in relations These relations are visualized by the display2D operation which analyzes the relations and invokes Xfig an open source drawing tool to display them With the displayed data the users can interac tively perform creation deletion relocation and modification on the various objects The display2D operation will generate a new relational value from an updated graph The display2D operation also provides flexibility with additional user defined vocab ulary relations which allow users to provide alternate names for attributes so that they can better describe the graphs they represent R sum La pr sente these traite de la conception et de la mise en ceuvre de l diteur d cran bidimensionnel display2D con u pour le s
35. CM SIGMOD Record 25 4 14 15 December 1996 Andy Chang Implementation of sigma joins in a nested relational lan guage Master s thesis McGill University Montreal Canada 2002 107 108 Che01 CMS99 Cod70 CRY96 ER93 ESJ92 Fur81 GEC98 Ger75 Hao98 BIBLIOGRAPHY Yuling Chen A GIS editor for a database programming language Master s thesis McGill University Montreal Canada 2001 Stuart K Card Jock Mackinlay and Ben Shneiderman Information visualization Using vision to think Morgan Kaufmann San Francisco CA 1999 E F Codd A relational model of data for large shared data banks Communications of the ACM 13 6 377 387 June 1970 Stuart Card George Robertson and William York The WebBook and the Web Forager An information workspace for the world wide web In Proceedings of the SIGCHI conference on Human factors in computing systems common ground 1996 Max Egenhofer and James Richards Exploratory access to geographic data based on the map overlay metaphor Journal of Visual Languages and Computing 4 2 105 125 1993 Stephen Eick Joseph Steffen and Eric Sumner Jr Seesoft a tool for vi sualizing line oriented software statistics IEEE Transactions on Software Engineering 18 11 957 968 November 1992 George Furnas The fisheye view a new look at structured files Bell Laboratories technical memorandum 1981 Nahum Gershon St
36. Cartesian coordinate x and Cartesian coordinate y Then we store the value in the XfigObj object de clared earlier As mentioned in section 4 2 8 if each vertex has a different 72 CHAPTER 5 IMPLEMENTATION OF DISPLAY2D pen colour or a different filling colour the first colour seen will be used and a warning message will be printed in the console Output the XfigObj Objects First of all an XfigObj object calls the function outFigFile Objs which is included in the XfigObj java file to get a string containing all the parameters of the object Then by using Java I O we write the return string to the cur rent fig file Finally as mentioned in section 5 1 4 the evaluateDisplay2D algorithm invokes Xfig to run the current fig file externally 5 2 2 Text If an attribute of the relation Picture is not shown as a value of the attribute attribute in the relation Vocab the values of this attribute in the relation Picture will be treated as text strings when displayed in the Xfig window For now we call this type of attribute text string attribute Note that a text string attribute could have any type including integer float double short long and string To detect whether text string attributes exist in the relation Picture we call func tion isStringin to check each attribute of the relation Picture If the current attribute is in any tuple of the attribute attribute in the relation Vocab a true value is r
37. D GRAPHS USING FLAT RELATIONS 47 4 2 8 Displaying a Sequenced Polyline To display a sequenced polyline the coordinates and sequence number of each vertex must be provided In section 4 2 4 we had drawn a pentagon from five lines Now we will use a relation called Polyline to get the same result Polyline x y sq 1363 3013 1 2942 3010 2 3426 1508 3 2148 583 4 5 6 873 1514 1363 3013 Table 4 8 Relation Polyline Note that in the relation Polyline the x and y values of the last tuple are the same as those in the first tuple This is a requirement enforced by data structures in Xfig It guarantees that the polyline is a closed shape If each vertex has a different pen colour or a different filling colour the first colour seen will be used and a warning message will be printed in the console relation Polyline x y sq lt 1363 3013 1 2942 3010 2 3426 1508 3 2148 583 4 873 1514 5 1363 3013 6 NewPolyline lt display2D Polyline Figure 4 16 jRelix input for displaying a sequenced polyline 48 CHAPTER 4 USER S MANUAL ON DISPLAY2D is Koena x ae Mouse Buttons Don t show depth nanager we llada A 11 51 M Zoom Grid 1 Mode emo SL ee Be K 2 Edit Y sa Figure 4 17 Displaying a sequenced polyline 4 2 9 Displaying a Sequenced Polyli
38. D provides the opportunity to link certain attribute names to certain graphical roles but there are defaults which you ll be using until section 4 4 LabelledPoints x y le label 5000 4000 0 5000 4000 2000 4000 0 2000 4000 5000 3000 0 5000 3000 Table 4 3 Relation LabelledPoints CHAPTER 4 USER S MANUAL ON DISPLAY2D domain label strg domain lc intg relation LabelledPoints x y lc label lt 5000 4000 0 5000 4000 2000 4000 O 2000 4000 5000 3000 O 5000 3000 NewLabelledPoints lt display2D LabelledPoints Figure 4 6 Relix input for displaying labelled points BPB Mig Stig EEIE en Sve brer 3 Fie sono oom dci Mode Figure 4 7 Displaying labelled points 4 2 EXAMPLES OF DISPLAYING 2D GRAPHS USING FLAT RELATIONS 41 4 2 4 Displaying a Set of Lines To display a set of lines the coordinates of the start point and the end point must be provided Lines xl yl x2 y2 1363 3013 2942 3010 2942 3010 3426 1508 3426 1508 2148 583 2148 583 873 1514 873 1514 1363 3013 Table 4 4 Relation Lines domain x1 intg domain y1 intg domain x2 intg domain y2 intg relation Lines x1 y1 x2 y2 lt 1363 3013 2942 3010 2942 3010 3426 1508 3426 1508 2148 583
39. Temporal data is data that explicitly refers to time Project time lines and historical data are both temporal data LifeLines PMR 96 developed at the University of Maryland is an application providing a personal history visualization On one screen an individual s information such as criminal record medical employment and education history is displayed as horizontal lines labelled with detailed information The flexible time scale for the display could be in years months weeks days hours and even in minutes For many video and animation editing software packages such as Adobe Pre miere Ado06 Macromedia Director Mac04 and Flash Mac05 temporal data vi sualization is used to synchronize layers and objects 6 CHAPTER 1 INTRODUCTION Tree Hierarchical Data In graph theory a tree is a collection of nodes with each node having a link to one par ent node except the root node Business organizations family trees animal species trees and directories of a computer hard disk can all be organized in a hierarchical tree structure One approach to visualizing tree data is the Cone Cam Tree RMC91 an ani mated three dimensional visualization of hierarchical structures The Cone Tree is a vertically oriented tree structure of vertical cone shapes with the parent nodes at the cone tips Child nodes are spaced equally in the base of a vertical cone shape with the parent node at the top The Cam Tree is a horizontally ori
40. To add this feature we could develop a method similar to that of updating type 2 Xfig objects as described in section 5 4 6 2 FUTURE WORK 97 Currently for type 2 Xfig objects we analyze an Xfig code block which repre sents one object Block 21010750 1 10 00000 1001 2000 4000 However for type 4 Xfig objects that represent text we will need to analyze the following Xfig code block which contains one text string Block 401 49 1 0 12 0 000 4 180 1515 100 100 string 001 e Introducing new attributes into the relation Any updating that introduces new attributes into the original relation which violates the updating Rule 2 in section 4 5 is not supported by the current implementation However there are two possible solutions for this case Solution 1 Use DC don t care a null value in jRelix As an example we use Table 6 8 where the relation Points3 contains three points While updating the graph which is represented by the relation Points3 we change the colour of the point with coordinates 100 500 from its default colour black to red Now we are introducing a new attribute lc which is the system built in attribute name for point colour So our new relation could be the one as shown in part a in Figure 6 1 In this case since the colour of the other two points remain in black DC is equivalent to 0 which is the colour code for black in Xfig CHAPTER 6 CONCLUSIONS Points3 x y 1
41. air lt display2D ChairVocab Chair Figure 6 3 jRelix input for displaying the matrix form of the relation Chair Back Leg A Rest A Screw A Seat Front gt il Figure 6 4 Matrix form of the relation Chair 101 Appendix A Keywords in Display2D This appendix presents the keywords used in the vocabulary relations for Display2D and their corresponding meanings and values in Xfig Table A 1 Keywords in vocabulary relations for display2D Keyword for Meaning Value display2D 1 Default Black 0 Black 1 Blue line_colour Point border colour 2 Green 3 Cyan 4 Red 5 Magenta 6 Yellow 7 White 8 11 four shades of blue dark to lighter 12 14 three shades of green dark to lighter fill_ colour Filling colour 15 17 three shades of cyan dark to lighter 18 20 three shades of red dark to lighter 21 23 three shades of magenta dark to lighter 24 26 three shades of brown dark to lighter text_colour Text colour 27 30 four shades of pink dark to lighter 31 Gold Continued on next page 102 Keyword for display2D Meaning Value fill pattern Filling pattern 1 not filled 0 black 1 19 shades of the colour darker to lighter Shade defined as the colour mixed with black 20 full saturation of the colour 21 39 tints of the colour the colour to white A tint is defined as the colour mixed with whi
42. all that in section 4 2 3 we drew three points with their coordinates labelled next to them The relation has the following format LabelledPoints x y lc label Here x y gives the coordinates of the points The value of the attribute label contains coordinates x y as a text string Though the current relation works properly it 96 CHAPTER 6 CONCLUSIONS is inefficient since the value of the attribute label repeats the information already contained in the coordinate attributes x and y To simplify the approach we would like to consider introducing two keywords cartlshow and cart2show cartlshow would be for showing the Cartesian co ordinate x and cart2show would be for showing the Cartesian coordinate y A vocabulary relation containing them is declared in Table 6 6 attribute meaning Xs cart lshow ys cart2show Table 6 6 A vocabulary relation for cartlshow and cart2show Therefore the simplified relation LabelledPoints would appear as follows LabelledPoints2 zs ys Hence the relation shown in Table 6 7 represents the same graph as the relation from Table 4 3 xs ys 5000 4000 2000 4000 5000 3000 Table 6 7 Relation Labelled Points2 6 2 5 Extending Display Update e Updating a graph containing text Updating relations containing text which violates the updating Rule 3 in section 4 5 is not currently supported by display2D
43. ast section a relation is defined on one or more attributes Therefore the attributes in a relation must be declared before the relation is declared The syntax of the relation declaration is the following relation lt rel_name gt lt dom_name1 dom_name2 gt Note that lt dom_name1 dom_name2 gt is a list of existing domains in the current system They can be either atomic type or complex type The above syntax declares an empty relation To initialize the relation with actual data tuples we need to apply the following syntax relation lt rel_name gt lt dom_name1 dom_name2 gt lt lt Initialization_list gt The three rules for the initialization_list are 1 A relation is always surrounded by a pair of curly brackets 16 CHAPTER 2 OVERVIEW OF JRELIX 2 Inside a relation each tuple is surrounded by a pair of round brackets 3 Tuples are separated by commas Figure 2 3 gives an example of a flat relation declaration In addition after any relation is initialized in the directory where jRelix is running a file having the same name as the relation and containing the data of the relation is created by the jRelix system Given the relation Points from Figure 2 3 the content of the file Points is shown in Figure 2 4 relation Points x1 y1 lt 4 1363 2013 2942 3010 3426 1508 2148 583 873 1514 Figure 2 3 Declare the flat relation Points 873 F151
44. ay2D operation 001 6 Figure 3 5 Sample Xfig code for a compound object FIG 3 2 Landscape Center Metric Letter 100 00 Single 2 1200 2 6 1935 1485 4050 3555 210247 50 1 1 0 000 0 0 1002 4000 1500 3000 3500 4 0 1 49 1 O 12 0 0000 4 180 1515 1975 2000 display2D operation 001 6 Figure 3 6 A complete Xfig file including the header from Figure 3 2 and the object part from Figure 3 5 Chapter 4 User s Manual on display2D In this chapter we give a tutorial about how to use the display2D operator to draw a relation Section 4 1 describes the system requirements for running the two dimensional display editor Sections 4 2 and 4 3 give several detailed examples showing how to declare a flat relation or a nested relation containing graphical in formation for displaying text point line triangle polyline or a combination of these objects Section 4 4 explains the syntax of display2D and how to declare a relation containing vocabulary information Section 4 5 presents the rules for valid updating and a series of examples on updating the display 4 1 Getting Started The two dimensional display editor is invoked in jRelix through the display2D opera tor The display2D operation displays a relation representing two dimensional graphs in a software application called Xfig which runs on the X Window platform There fore before calling the two dimensional display editor we must successfully i
45. ber of blocks A type 2 Xfig object is represented by one block two lines In this example we detect the three blocks shown below It indicates that there are three objects and the new relation should have three tuples Block 1 21010750 1 10 00000 1001 2000 4000 Block 2 21014750 1 1 0 000 0 0 1001 5000 3000 Block 3 21010750 1 10 00000 1001 5000 4000 2 Determine the type of the shape represented by an Xfig file As mentioned earlier in an Xfig file to determine the type of the shape it represents we examine the number of points npoints in any Xfig object In a block the value of the last number in the first line represents npoints In this example it is 1 which implies that the relation represents points Therefore the relation should have at least two integer attributes x and y 5 4 UPDATING THE DISPLAY 89 If a line is detected we create four integer type attributes x1 y1 12 y2 If a triangle is detected we create six integer type attributes x1 yl x2 y2 13 y3 If a polyline is detected we create three integer type attributes T Y Sq FIG 3 2 Landscape Center Metric Letter 100 00 Single 2 1200 210107 50 1 1 0 000 0 0 1001 2000 4000 21014750 1 1 0 000 0 0 1001 5000 3000 21010750 1 1 0 000 0 0O 1001 5000 4000 Figure 5 15 An Xfig file representing three points 3 Determine the attributes of the relation Besides the attributes for the coordinate
46. ch rule again we will explain how to check for violations Note that according to Rule 3 the relation for the current graph must be a flat relation This implies that the Xfig file must only contain a single shape of either points lines triangles or a polyline All of these shapes are type 2 Xfig objects as mentioned in section 5 1 5 Rule 1 Updating does not support changing a flat relation to a nested relation In another words introducing a new shape including point line triangle 5 4 UPDATING THE DISPLAY 83 run 1 while Xfig display window is not closed by the user a 3 Compare the current file file fig and the copied file _file fig by 4 comparing 2 strings that contain the contents of the 2 files 5 if 2 strings are not equal there is an update 6 7 if The update does not violate the 3 updating rules in section 4 5 8 9 Call Java Runtime exec to run cp file fig file fig externally 10 Create a new relation from the file file fig 11 A temporary empty file is created in the current directory 12 Java I O outputs the data of the new relation into the file 13 14 if Violation is detected 15 16 Java Swing is used to create a pop up error message window 17 18 19 sleep 3000 thread is put to sleep for 3 seconds Figure 5 10 Algorithm for the function run in detectFileDiffThread java 84 CHAPTER 5 IMPLEMENTATION OF DISPLAY2D polyline and text int
47. d b but not to attribute textstring The reason is that any attribute not shown either in the user defined vocabulary relation or in the relation vocabulary but is shown in the relation that stores graphical information will be treated as a text string This text string will be shown in the Xfig window as part of the display Finally to display the relation Texts2 we require both the relations Texts2 and Text Vocabulary 56 CHAPTER 4 USER S MANUAL ON DISPLAY2D Note that in the display2D expression syntax display2D Vocabulary Expression GraphEzpression is a relational expression that has the same value as GraphExpression only if users do not make changes to the display of GraphExpression Because of this it can be used in assignment lt such as in the input shown in Figure 4 25 In addition to assignment we can also do all of the unary operations including projection selection and T selection or all of the binary operations including p join and o join For example in Figure 4 26 we project the values of attribute textstring from expression display2D TextVocabulary Text2 After the input from Figure 4 26 is processed by the system an Xfig window ap pears showing the same picture as in Figure 4 3 After we close the Xfig window the projection result appears on the screen as shown in Figure 4 27 NewText2 lt display2D TextVocabulary Text2 Figure 4 25 jRelix input for displaying relat
48. d on one or more attributes Each attribute is associated with a set of values called a domain Mer99 The data type of an attribute is determined by its domain In jRelix there are two types of domain declarations atomic typed and complex typed JRelix provides eleven atomic data types integer short long float double boolean string text numeric universal Mer01 and attribute Mer01 The syntax for the atomic typed domain declaration is the following domain lt dom_name1 dom_name2 gt lt atomic_data_type gt A nested relation is one that can contain another relation as its attributes A complex typed domain declaration declares nested domains from nested relations 13 14 CHAPTER 2 OVERVIEW OF JRELIX This allows multiple level nesting in Relix The syntax for the complex typed domain declaration is the following domain lt nested_domain_name gt lt dom_namei dom_name2 gt An example of a domain declaration is shown in Figure 2 1 Note that the nested domain Lines is defined using the atomic typed domains x1 y1 x2 and y2 The 2 level nested domain Graph is defined using the atomic type domain label and the complex typed domain Lines In jRelix once a nested domain is declared a corresponding relation called a dot relation which has a name beginning with a and followed by the name of the nested domain is created by the system automatically Therefore in the example from Figure 2 1
49. d retrieving transforming and displaying spatial data Bur86 A GIS is usually a combination of a collection of map layers which can be linked together Each layer is a two dimensional representation for an aspect such as cities rivers mountains roads etc One approach for displaying the map layers presented by Egenhofer and Richards is to use a combination of data cubes and map templates ER93 The data cubes represent the geographic data Each cube has a spatial location and orientation The map templates describe the display parameters which are rules for displaying data cubes among different views Another effort to visualize GIS is Geditor Che01 a GIS editor and visualizer for a relational database system jRelix see section 1 2 2 The Geditor analyzes both spatial and non spatial data stored in the relational database and displays map layers in a graphical user interface written in Java Foundation Classes JFC Swing The Geditor allows users to edit maps generate thematic maps and perform spatial queries Che01 In addition to geographic information two dimensional relations can also be cate gorized as two dimensional data To visualize this relational information by graphical presentations such as bar charts scatter plots connected graphs etc a linear model for generating graphical visualization Mac86 shown in Figure 1 1 is usually used 4 CHAPTER 1 INTRODUCTION Application Prese
50. e function rel_Type Then we examine its first attribute Nested Polyline which has a type IDLIST Therefore we recursively call the function disp NestedRel NestedPolyline vocabulary 1 where 1 is the value of the cell located at row 1 column 1 in the relation Graph as shown in the Figure 5 6 Now we use the dispNestedRel algorithm to analyze the relation NestedPolyline First we find out that relation NestedPolyline is an intermediate node For each tuple the algorithm then does a comparison of the value of the attribute id in the relation NestedPolyline to the current id In this case the current id is 1 If they 78 CHAPTER 5 IMPLEMENTATION OF DISPLAY2D dispNestedRel String s Relation Vocab long id Find a relation r which has the same name as the value of string s reltype rel_Type r If reltype 1 r is root For each attribute 7 of r If attribute i has type IDLIST For each tuple j of r dispNestedRel attribute i s name Vocab data in cell 5 If reltype 2 ris an intermediate node For each tuple j of r If data in cell 0 j equal to id For each attribute of r If attibute 7 has type IDLIST and attribute i s name is not id dispNestedRel attribute i s name Vocab data in cell 5 If reltype 3 risa leaf node drawRel r Vocab id Figure 5 8 Algorithm for the function dispNestedRel 5 3 DISPLAYING 2D GRAPHS USING NESTED RELATIONS 79 are
51. e immediate graphical feedback for dynamic queries provides users with a better understanding of the database and query results As mentioned before the commercial application Spotfire Ah196 is a system based on the concept of dynamic queries There is also the HomeFinder WS92 an application visualizing multi dimensional real estate data The HomeFinder displays a map containing all of the locations of houses for sale By manipulating sliders users can perform dynamic database queries by selecting the home s distance to desired locations the numbers of bedrooms and the cost of the house As these selections are changed the houses that best satisfy the criteria are immediately displayed Another tool called PDQ Pruning with Dynamic Queries Tree browser KPS97 is used for hierarchical data visualization with dynamic queries PDQ Tree browser provides a graphical overview and detailed view of a tree in node link forms A dynamic query panel consisting of an attributes list on the left and a widgets panel on the right is below the tree display Dynamic queries can be done at different levels of the tree The result nodes matching the query are highlighted 1 2 RELATIONAL DATABASE SYSTEM 9 1 2 Relational Database System 1 2 1 Relational Model The relational model of data was invented by Codd Cod70 Since then it has been recognized for its simplicity uniformity data independence integrity and evolvabil ity Ger75 I
52. e spltype to specify the type of a spline A list of the spline types is given in Table 6 2 We also need to declare the meaning of the attributes splsq and spltype in a vocabulary relation as shown in Table 6 3 spline_sequence and spline_type will be the system built in keywords Type 5 Arc A general format for the relation representing arcs can be the following Arcs r1 yl 12 y2 x8 y3 arctype 94 CHAPTER 6 CONCLUSIONS spline type value open approximated spline 0 closed approximated spline 1 open interpolat ed spline closed interpolated spline open x spline closed x spline oF ee Ww bw Table 6 2 Spline types attribute meaning splsq spline_sequence spltype spline_type Table 6 3 A vocabulary relation for splines x1 y1 and 23 y3 are the coord inates of the start and end points of the arc respectively 12 y2 gives the coordinates of a point other than the start or end point on the arc We also nee d an additional attribute arctype to specify the type of the arc A value of 1 for arctype indicates open ended arcs A value of 2 for arctype indicates pie wedge closed arcs The following vocabulary relation shown in Table 6 4 needs to be declared arc_type will become a system built in keyword attribute meaning arctype arc_type Table 6 4 A vocab 6 2 2 P
53. ented tree structure of horizontal cone shapes with the parent node at the cone tips Child nodes are spaced equally in the base of a horizontal cone shape with the parent node at the left When the user selects a node with the mouse the selected node is highlighted and the Cone Cam Tree rotates to bring the selected node to the front of the view This interactive animation shifts some of the user s cognitive load to the human perceptual system Also the user gains insight into the relationships between substructures RMC91 Another approach for the hierarchical information visualization is a Tree Map which is a one hundred percent utilized rectangular display filled with nested rectan gles JS91 To represent a tree by a Tree Map each node of the tree must have an attribute representing its size or weight Each leaf node of the tree is represented by a rectangle The size of a rectangle in the Tree Map indicates the relative size within the entire hierarchy The contents of a node such as name and size can be displayed in the rectangle representing the node The application of the Tree Map is broad It can be used to give a better representation of the utilization of storage space on a hard disk It can also visualize the number of book collections by subject in a library or the number of employees and the amount of budget allocated to each department in a business organization Shn92 1 1 INFORMATION VISUALIZATION T Network Data
54. ephen G Eick and Stuart Card Information visual ization Interactions 5 2 9 15 March April 1998 R Gerritsen The relational and network models of data bases Bridging the gap 2nd USA Japan Computer Conference 1975 Biao Hao Implementation of the nested relational algebra in Java Mas ter s thesis McGill University Montreal Canada 1998 BIBLIOGRAPHY 109 He97 Ins8 1 Ins90 3891 Kan01 KPS97 Mac86 Mac04 Mac05 MB95 Mer84 Hongbo He Implementation of nested relations in a database program ming language Master s thesis McGill University Montreal Canada 1997 Alfred Inselberg N dimensional graphics Part I Lines and Hyperplanes 1981 in IBM LASC Tech Alfred Inselberg Parallel coordinates a tool for visualizing multi dimensional geometry In Proceedings of the 1st conference on Visual ization 90 pages 361 378 1990 Brian Johnson and Ben Shneiderman Tree Maps a space filling approach to the visualization of hierarchical information structures In Proceedings of the 2nd conference on Visualization 91 pages 284 291 1991 Sung Soo Kang Implementation of functional mapping in a nested domain algebra Master s thesis McGill University Montreal Canada 2001 Harsha Kumar Catherine Plaisant and Ben Shneiderman Browsing hier archical data with multi level dynamic queries and pruning International Journal of Human Comp
55. es by 1 If it is sequence polyline_flag a global integer variable with a initial value 0 is assigned to be 1 After finishing all of the tuples of the relation Vocab we then compare the values of c1 and c2 e If c1 is not equal to c2 throw an exception e If c1 c2 2 then the relation Picture is a set of lines e If c1 c2 3 then the relation Picture is a set of triangles e If c1 c2 1 Tf polyline_flag 1 then the relation Picture represents a polyline If polyline_flag 0 then the relation Picture represents a set of points Determine the Number of Objects From the last step if a polyline type is detected it would guarantee that there is only one polyline from the relation Picture since it is a flat relation If the relation Picture contains a set of points lines triangles the number of points lines triangles is the number of the tuples from the relation Picture With the number of objects determined we declare an array of XfigObj ob jects Extract Information from the Relation Picture e Non polyline 5 2 DISPLAYING 2D GRAPHS USING FLAT RELATIONS 71 For each tuple say tuple 2 in the relation Picture we do the following In the relation Vocab we go through the values of the attribute attribute tuple by tuple trying to find matches to attribute names of the relation Picture It there is a match we record the column number v_idx of the matched attribute in the relation Picture T
56. eturned If the opposite occurs text_count which is an integer variable with an initial value 0 increases by 1 and as well we record the current column index number in an array texts_idz While checking each attribute of the relation Picture we also have to be aware of whether there are any attributes in the corresponding tuple in the relation Vo cab that have the meaning line thickness line style line colour fill colour or fill pattern If there are any such attributes draw an integer variable with a initial value 0 is assigned to be 1 This step is necessary because to distinguish a relation representing text from a relation representing text and a shape including points lines triangles polyline we need at least one attribute describing the prop 5 2 DISPLAYING 2D GRAPHS USING FLAT RELATIONS 73 erty of the shape We had mentioned this in section 4 2 3 We could end up with multiple text strings For example the relation Picture could have the form shown in Figure 5 4 where the attributes z and y are the coordinates and s1 s2 and s3 represent text strings However since s1 s2 and s3 share the coordinates z y an overlap of three text strings in a white box with a black border will be shown To avoid overlaps we must make use of the parameter depth from Table 3 2 to make the text appear at different layers in the display We require that the first text string attribute in the relation Pict
57. ew relation from an updated display e The display2D operation becomes flexible from the addition of user defined vocabulary relations which allow users to provide alternate names for attributes so that they better describe the graph they represent 91 92 CHAPTER 6 CONCLUSIONS By using Xfig as the display tool the implementation of a graphical user interface GUI for the display2D operation is not necessary Therefore to display a relation the work is reduced to analyzing a relation and producing its corresponding Xfig file As mentioned in chapter 3 Xfig runs on the X Window System which is not platform independent This may limit the use of the display2D operation on other platforms such as Microsoft Windows environments The implementation of display2D provides a flexible and extendable framework In chapter 3 we listed the types of graphical objects in Xfig which include text points straight lines splines polylines polygons arcs ellipses circles etc Display2D cap tures most of these shapes and with a few modifications we could implement all of them In section 4 5 we introduced the three rules for updating the display Cur rently we have not found solutions for all of the updating cases Therefore further research can be focused on this 6 2 Future Work 6 2 1 Further Xfig Object Implementation So far we have covered type 2 4 and 6 Xfig objects including points lines triangles open closed polylines and
58. existing structure without operations such as creation deletion relocation or modification We propose to give jRelix an extensive ability for interactive information visual ization In other words jRelix will not only provide information graphics but will also allow users to operate on the visualizations interactively We need to develop an automatic mechanism that analyzes user changes to visual content and makes updates to the database accordingly 12 CHAPTER 1 INTRODUCTION 1 4 Thesis Outline The current chapter chapter 1 presented a literature background on information visualization relational models and jRelix In addition the motivation and outline of this thesis are presented in this chapter Chapter 2 introduces the use of the jRelix system Chapter 3 gives a tutorial of Xfig and the Xfig file format Chapter 4 is the user manual on display2D Chapter 5 presents the implementation of the display2D operation in jRelix Chapter 6 concludes the thesis with a summary and proposes future work Chapter 2 Overview of jRelix In this chapter we give a tutorial about the current jRelix system so that the reader can understand material presented in the later chapters of this thesis Section 2 1 explains how to declare domains and relations in jRelix Section 2 2 introduces relational algebra including assignments unary and binary relation operations 2 1 Declarations 2 1 1 Domain Declarations A relation is define
59. h thickness to be added to the original relation This violates Rule 2 To fix the problem we change the border width back to 1 save the figure and click Ok I fixed it The error message window disappears 60 CHAPTER 4 USER S MANUAL ON DISPLAY2D a iy ty loa Sedit vieu Help 1 Fig House Buttons p 00 CHANGE CHANGE OBJECT via EDIT a EDIT panel ae m k L NS Figure 4 31 After changing the border width of the bottom triangle X Enon ag x Introduced new attribute Thickness into the relation Not implemented Minimize this popup window fix the error then maximize this window and click the button Ok I fixed it Figure 4 32 Popup error message 1 X Eur E x Introduced new type of polyline object into the relation Not implemented Minimize this popup window fix the error then maximize this window and click the button Ok I fixed it Figure 4 33 Popup error message 2 4 5 EXAMPLES OF UPDATING THE DISPLAY 61 5 Adding a straight line to the graph we get Figure 4 34 We are violating Rule 1 so another error message shown in Figure 4 33 pops up After fixing the error and saving the file we are back again at Figure 4 30 Now we will exit Xfig Because of the modification the relation NewTriangle is no longer the same as the relation Triangle Instead the relation NewTriangle which represents the new graph shown in Figure 4 30 has a new value showing in Table 4
60. he box into a compound object The file XfigObj java which is used to describe an Xfig object contains the fol lowing six parts e A group of instances which are a union of the parameters required by type 2 4 and 6 Xfig Objects e A general constructor Xfig0bj e A constructor Xfig0bj int obj_type which can be used to specify the object type e Function findLength double font_size For a given font size the function returns an integer value for the length of a text string in Times Roman which is the default font in Xfig e Function outFigFile Objs It returns a string containing all the parame ters required by type 2 Xfig objects For display2D we use this function for 5 2 DISPLAYING 2D GRAPHS USING FLAT RELATIONS 69 points lines triangles and polylines An example of the return value of function outFigFile_Objs is shown in Figure 3 3 e Function outFigFile Text It returns a string which is the Xfig code for a compound object containing text strings and a white box with black bor der The coordinates of the upper left corner and the lower right corner of the box are calculated in this function An example of the return value of func tion outFigFile_Text is shown in Figure 3 5 Note that in display2D this function is only used for text 5 2 Displaying 2D Graphs Using Flat Relations In this section we will use the following example to illustrate how display2D is im plemented for displayi
61. hen we retrieve the value x from the cell which is located at row i column v_idr in the relation Picture To reveal the meaning of the value x we obtain the value of the attribute meaning from the current tuple in the relation Vocab If the value is line_colour it indicates that the parameter pen colour from Table 3 2 has the value x Please refer to Table A 2 in Appendix A for more cases Each time after we get a new value x and its meaning cartl cart2 line_colour etc we assign it to the corresponding instance of the XfigObj object s declared earlier Note that we must keep track of the number of appearances of cart1 and cart2 because points lines or triangles have different pairs of cart1 and cart2 Note that the values for the attributes which have meanings cart1 or cart2 can be numeric or string If the values are numerical the system will treat the values as the actual coordinates If the values are strings the system will automatically assign positions 1000 2000 3000 etc according to the sort order of the strings e Polyline To get the graphical information from a relation which is a polyline we first determine the total number of vertices max_seq which equals the to tal number of tuples in the relation Then for each integer starting from 1 to mazx_seq we find the corresponding tuple using the same method de scribed for non polyline to get the values for
62. ier 13 Courier Oblique 14 Courier Bold 15 Courier Bold Oblique 16 Helvetica 17 Helvetica Oblique 18 Helvetica Bold 19 Helvetica Bold Oblique 20 Helvetica Narrow 21 Helvetica Narrow Oblique 22 Helvetica Narrow Bold 23 Helvetica Narrow Bold Oblique 24 New Century Schoolbook Roman 25 New Century Schoolbook Italic 26 New Century Schoolbook Bold 27 New Century Schoolbook Bold Italic 28 Palatino Roman 29 Palatino Italic 30 Palatino Bold 31 Palatino Bold Italic 32 Symbol 33 Zapf Chancery Medium Italic 34 Zapf Dingbats Continued on next page Table A 1 continued from previous page Keyword for Meaning Value display2D font_size Font size Any int between 1 to 500 inclusive dash length The distance between unit in 1 80 inches the dots for dash line join_style Join style 0 Miter 1 Round 2 Bevel cap style Cap style 0 Butt 1 Round 2 Projecting forward_arrow Arrow type 0 Stick type 1 Closed triangle backward_arrow Arrow type 2 Closed with indented butt 3 Closed with pointed butt cartl Cartesian coordinate x cart2 Cartesian coordinate y sequence Polyline vertex Any integer gt 1 sequence number Table A 1 Keywords in vocabulary relations for display2D 105 106 APPENDIX A KEYWORDS IN DISPLAY2D Xfig Object Keyword for Parame
63. ine are not supported by the current system Rule 2 Updating must be done without introducing any new attribute into the relation when adding deleting or modifying points lines or triangles or mod ifying a polyline Rule 3 Updating does not support any changes to nested relations or any relations containing Text 4 5 1 Valid Updates 1 Flip the top triangle in Figure 4 13 horizontally by using Ga from the Xfig toolbar Then save the figure shown in Figure 4 28 2 Draw a triangle with a black border no fill colour and no filling pattern Then save the figure shown in Figure 4 29 58 CHAPTER 4 USER S MANUAL ON DISPLAY2D EN ON a SERE Seas i L wr sta Depth clack ee Be ao Figure 4 29 After drawing a new triangle 4 5 EXAMPLES OF UPDATING THE DISPLAY 59 3 Edit the bottom triangle by using to change the filling pattern from vertical lines to horizontal lines Then save the figure shown in Figure 4 30 Wits a Figure 4 30 After changing the filling pattern of the bottom triangle 4 5 2 Invalid Updates 4 To increase the width of the border first click Edit Changing the width from 1 to 4 we get Figure 4 31 Now we go to the Xfig File menu and save the current figure An error message window as shown in Figure 4 32 appears The error occurs because the default value for the width is changed from 1 to 4 Doing this requires a new attribute for the border widt
64. ion Pointsa a tk eo A eri A A a 98 69 Relation Chair a e a hay as dr il a AEA 100 6 10 Relation ChairVocab 2 82208 24 828 e A e a oe See os 100 A 1 Keywords in vocabulary relations for display2D 105 A 2 Xfig object parameter names and the keywords for display2D 106 Chapter 1 Introduction Visualization is the process of transforming data information and knowledge into visual form making use of humans natural visual capabilities GEC98 It signifi cantly improves our understanding of complicated relations and larger quantities of data This thesis presents the design and implementation of a two dimensional display editor which graphically visualizes the data stored in relations for a relational data base programming system jRelix Bak98 He97 Hao98 Sun00 Yua98 In this chapter we will introduce the background and preliminary material needed throughout the thesis Section 1 1 describes the research background and the pre vious achievements in the area of information visualization Section 1 2 reviews the relational data model Section 1 3 presents the motivation for the integration of in formation visualization into JRelix The last section serves as an outline of the topics covered in this thesis 1 1 Information Visualization Information visualization is defined as the use of computer supported interactive vi sual representations of abstract nonphysically based data to amplify cognitio
65. ion Text2 using Assignment pr textstring in display2D TextVocabulary Text2 Figure 4 26 jRelix input for displaying relation Text2 using Projection 5000 4000 2000 4000 5000 3000 Figure 4 27 Projection result 4 5 Examples of Updating the Display Recall that from section 4 2 6 we draw two triangles We do this first by declaring a relation named Triangle shown in Table 4 6 We then input NewTriangle lt 4 5 EXAMPLES OF UPDATING THE DISPLAY 57 display2D Triangle into jRelix causing an Xfig window displaying two tri angles to appear as shown in Figure 4 13 Now without doing any modification to this graph we close the Xfig window A new relation NewTriangle as shown in Table 4 14 is created and is assigned to have the same tuples as relation Triangle New Triangle x1 yl x2 y2 x3 y3 lc fe fp 5000 4000 2000 4000 5000 3000 1 6 50 3000 1000 5000 1000 5000 2500 6 1 50 Table 4 14 Relation NewTriangle Now we will make updates to the picture Before we get started let us understand some rules for updating Rule 1 Updating does not support changing a flat relation to a nested relation In another words introducing a new shape including point line triangle polyline and text into the original graph or introducing a new polyline into the original graph which contains a polyl
66. isplay is not updated by the user the returned relation has the same value as GraphExpression Otherwise the returned relation represents the updated GraphExpression To evaluate the display2D expression the evaluateDisplay2D algorithm first an alyzes the syntax tree from display2D It detects the number of children of node disp2D If there is only one child VocabularyExpression must be empty Therefore only the GraphExpression is loaded If node disp2D has two children both Vocabu laryExpression and GraphExpression are loaded After syntax tree analysis the evaluateDisplay2D algorithm picks an Xfig file name for the current display The file name has two parts the first part is a global integer which starts at 1 and increases by 1 if the display2D operator is being called successfully The other part of the file name is the suffix fig which indicates an Xfig file In the current directory the evaluateDisplay2D algorithm creates a file with the newly picked name and calls Java I O facilities to write the Xfig file header shown in Figure 3 2 to the current fig file The evaluateDisplay2D algorithm is also used to analyze GraphExpression It goes through the type of each attribute in GraphExpression If there is an attribute with type IDLIST it indicates that GraphExpression is a nested relation Then a global boolean variable nested with an initial value false is assigned to be true Function dispNestedRel is called to di
67. l can be displayed in the centroid of this polyline To do so a nested relation is required NestedPolyline label Ic Polyline x y sq 1363 3013 1 2942 3010 2 P1 O 3426 1508 3 2148 583 4 5 6 873 1514 1363 3013 Table 4 10 Relation NestedPolyline domain lc intg domain Polyline x y sq relation NestedPolyline label lc Polyline lt Pi 0 1363 3013 1 2942 3010 2 3426 1508 3 2148 583 4 873 1514 5 1363 3013 6 NewNestedPolyline lt display2D NestedPolyline Figure 4 20 jRelix input for displaying a sequenced polyline with a label in its cen troid 4 3 EXAMPLES OF DISPLAYING 2D GRAPHS USING NESTED RELATIONS51 0 10149 bx Aes SIPia alo DAT gil TAE JA E Meee 1220 Zoom Grid 1 Mode Figure 4 21 Displaying a sequenced polyline with a label in its centroid 4 3 2 Displaying Several Polylines or a Combination of Dif ferent Shapes To display several polylines or a combination of different shapes we have to use a nested relation For example we want to draw the labelled polyline from the previous section and the labelled triangles from section 4 2 7 We would create a 3 level nested relation called Graph CHAPTER 4 USER S MANUAL ON DISPLAY2D Graph NestedPolyline Labelled Triangle label Ic Polyline xl yl x2 y2
68. legs and two screws 100 The relation Chair containing the assembly and subassembly information is shown in Table 6 9 We also declare a vocabulary relation VocabChair which describes the meaning of the attributes of the relation Chair as shown in Table 6 10 Note that the attribute Quantity of the relation Chair is not defined in the relation VocabChair Therefore the values of the attribute Quantity will be treated as text strings when displayed in the Xfig window Although the attributes Assembly and Subassembly contain string values the system will automatically assign numerical coordinates to each tuple as mentioned in section 5 2 1 The matrix form of the relation Chair is shown in Figure 6 4 CHAPTER 6 CONCLUSIONS Chair Quantity Assembly Subassembly 1 Front Seat 2 Front Leg 2 Front Screw 1 Back Rest 2 Back Leg 2 Back Screw Table 6 9 Relation Chair Chair Vocab attribute meaning Assembly cartl Subassembly cart2 Table 6 10 Relation ChairVocab 6 3 CONCLUSIONS domain Quantity intg domain Assembly strg domain Subassembly strg Ci Front 2 Front 2 Front 1 Back 2 Back 2 Back relation Chair Quantity Assembly Subassembly lt 4 Seat Leg Screw Rest Leg Screw relation ChairVocab attribute meaning lt Assembly cart1 Subassembly cart2 DispCh
69. lt attr_list_rel_R gt lt rel R gt The incremental assignment appends the additional tuples from the right hand relation to the left hand relation The attributes in left hand relation must be com patible with those in the right hand relation Figure 2 8 gives examples of assignment operations 2 2 2 Unary Operations Unary operations take a single relation as input and generate a new relation as output jRelix provides three unary operations projection selection and T selection e Projection 20 CHAPTER 2 OVERVIEW OF JRELIX gt domain x1 y1 x2 y2 intg gt relation Points1 x1 y1 lt 1000 2000 1000 4000 gt NewPoints lt Points1 gt pr NewPoints x1 y1 1000 2000 1000 4000 relation NewPoints has 2 tuples gt relation Points2 x1 y1 lt 5000 6000 gt NewPoints lt Points2 gt pr NewPoints x1 yt 1000 2000 1000 4000 5000 6000 relation NewPoints has 3 tuples gt Points2 y1 x1 lt x1 y1 NewPoints gt pr Points2 x1 yt 2000 1000 4000 1000 5000 6000 6000 5000 relation Points2 has 4 tuples Figure 2 8
70. lue in the XfigObj object array text A text string must have coordinates for display According to the type of the graph represented by the relation Picture the coordinates for the text string are calculated differently Text and Point Picture x y colour s1 In the relation Picture the attributes x and y are the coordinates The attribute colour is the line colour and s1 is a text string attribute Recall that in Table 3 3 the coordinate location x y for text is the lower left corner of the text string Therefore there is an overlap between the point and the text string To avoid this we require that if the point has coordinates X Y the corresponding text string must have coordinates X 180 Y 180 where the constant 180 represents 180 Fig units and is display independent Text and Line Picture x1 yl x2 y2 colour s1 In this case the text string will have the same direction as the slope of the corresponding line Also the text string will be centered at the center of the line To do this we need to find the slope and the coordinates of the middle point of the corresponding line and also the length of each text string Then we calculate the coordinates for the text string Text and Triangle Picture x1 yl x2 y2 x3 y3 colour s1 To display a text string with a triangle we require that the coordinates of the beginning of a text string are the coordinates of the centroid of the correspond ing
71. mputing systems common ground 1996 Ramana Rao and Stuart Card The Table Lens merging graphical and symbolic representations in an interactive focus context visualization for tabular information In Proceedings of the SIGCHI conference on Human factors in computing systems celebrating interdependence pages 318 322 1994 George Robertson and Jock Mackinlay The document lens In Proceed ings of the 6th annual ACM symposium on User interface software and technology pages 101 108 Atlanta Georgia United States 1993 George Robertson Jock Mackinlay and Stuart Card Cone Trees ani mated 3D visualizations of hierarchical information In Proceedings of the SIGCHI conference on Human factors in computing systems Reaching through technology pages 189 194 1991 BIBLIOGRAPHY 111 SDV04 Shn92 Shn96 SM97 SS02 Sun00 Wan02 W392 Sriram Sankar Rob Duncan and Sreenivasa Viswanadha Java Compiler Compiler JavaCC the Java parser generator https javacc dev java net 2004 Ben Shneiderman Tree visualization with tree maps 2 D space filling approach ACM Transactions on Graphics TOG 11 1 92 99 January 1992 Ben Shneiderman The eyes have it a task by data type taxonomy for information visualizations In Proceedings of the 1996 IEEE Symposium on Visual Languages pages 336 343 IEEE Computer Society September 1996 H Shiozawa and Y Matsushita WWW
72. n CMS99 It is a broad and complex research area which involves research in visual design 2 CHAPTER 1 INTRODUCTION human computer interaction computer graphics database systems and cognitive sci ence The two main aspects of the research are static and interactive information visu alization For static information visualization researchers focus on methods to display different types of data statically such as scientific numerical data relational data and geographical data For interactive information visualization researchers focus on real time interactive visualization which is the ability of the system to respond quickly to the users direct manipulation commands CC96 Dynamic queries AWS92 is one of the major themes for interactive information visualization 1 1 1 Static Information Visualization According to the data type taxonomy Shn96 proposed by Shneiderman static in formation visualization is used to visualize seven data types one dimensional two dimensional three dimensional temporal multi dimensional tree and network data One Dimensional Data One dimensional data is linear data such as text which includes pure text documents source code of computer programs etc Naturally a user can easily visualize a small one dimensional data set such as a short letter To enable users to visualize the overall structure of a very long textual document and to understand the connections between par
73. n Points x y lt 5000 4000 2000 4000 5000 3000 NewPoints lt display2D Points Figure 4 4 jRelix input for displaying points After the system has processed the input from Figure 4 4 an Xfig window dis playing three black points appears as shown in Figure 4 5 4 2 3 Displaying a Set of Labelled Points To draw the three points from the last example and with labels containing their coordinates we need to add a string type attribute to the relation which stores the content for each label We realize that after doing this we end up with a relation having the exact same form as the relation Text from Table 4 1 In order to distinguish between these two cases we require that at least one attribute describing 4 2 EXAMPLES OF DISPLAYING 2D GRAPHS USING FLAT RELATIONS 39 K Mig 2 fly l0 x Don t show depth nanager 1 0 Ae S Sli 4 5 6 7 8 9 iden 11 tiem 1 000n 5 al gt I ac Fal i F Scale et Ro ARAE 1 22 Mo 1 cae ne erx i Y IM o Figure 4 5 Displaying points the property of the point must be provided This is necessary when drawing any labelled shape including point line triangle and polyline In this example we add the integer type attribute lc providing the colour of the point and assign lc to be 0 which indicates black Other properties include line width line style filling colour and filling pattern Note that display2
74. n coordinate y For more information about the meaning of other keywords refer to Appendix A Table A 1 Now let us look at an example that uses our own defined vocabulary relation To display the exact same picture as in section 4 2 1 we begin by defining a relation Text2 as shown in Table 4 12 4 4 DISPLAYING A GRAPH WITH A VOCABULARY RELATION 55 Text2 a b textstring 5000 4000 5000 4000 2000 4000 2000 4000 5000 3000 5000 3000 Table 4 12 Relation Text2 Comparing this to our example from section 4 2 1 notice that we named the first two attributes a and b instead of x and y To let the system know that a actually means Cartesian coordinate x and that b actually means Cartesian coordinate y we must declare a vocabulary relation which stores such information A relation that represents a vocabulary relation must have two attributes One attribute is named attribute with type attribute and the other is named meaning with type string The attribute meaning is not allowed to have any value other than those values used by the attribute meaning in the relation vocabulary Text Vocabulary attribute meaning a cartl b cart2 Table 4 13 Relation TextVocabulary Note that the values for the attributes which have meanings cart1 or cart2 can be numeric or string Now notice that in Table 4 13 we have given meanings to attributes a an
75. n his relational model a new data structure called a relation which is represented in a table format is used to model and store data Each row in the table is called a tuple Each column is referred to as a domain The name of a domain is an attribute From a mathematical perspective a relation is a subset of the Cartesian product of its domains Each relational table has the following properties 1 All rows are distinct from each other 2 The ordering of rows is immaterial 3 Each column has a different name attribute and the ordering of columns is immaterial 4 The value in each row under a given column is atomic i e it is non decomposable Operations on Relations Operations on relations are performed by relational algebra which is proposed by Codd Cod70 In relational algebra the relational operators take relations as operands and return a new relation as the result Depending on the number of operands the relational algebra operations are classified as unary or binary operations Unary op erators require one relation as the lone operand Projection and selection operations are both unary Binary operators take two relations as operands p join and o join are binary operations Operations on Domains The algebra on attributes is called domain algebra Proposed by Merrett Mer84 domain algebra treats attributes independently from relations It allows users to 10 CHAPTER 1 INTRODUCTION create new domains f
76. nd it is not equal to t a tab character is always the first character in the second line of a type 2 Xfig object code as mentioned in section 5 1 5 the function isPolyline returns false 5 4 UPDATING THE DISPLAY 87 In the original Xfig file If all the Xfig objects have default values for all of the 15 parameters In the updated Xfig file If there exists one Xfig object having one parameter with a different value from its corresponding default value Then it is a violation to Rule 2 Else say we find parameter p does not have its corresponding default value In the updated Xfig file If there exists one Xfig object having one parameter other than parameter p with a different value from its corresponding default value Then it is a violation to Rule 2 Figure 5 14 An algorithm for detecting violations to Rule 2 CHAPTER 5 IMPLEMENTATION OF DISPLAY2D After we detect a nested relation or the function isPolyline returns false if the user saves any updates there is a violation to Rule 3 e Line 10 How to create a relation from an Xfig file To create a relation from an Xfig file we need to do the following 4 steps 1 Determine the number of objects represented by an Xfig file In Figure 5 15 we show an Xfig file which represents three points To determine that there are indeed three objects in the Xfig file we skip the first nine lines which are the Xfig file header Then we count the num
77. ne with Labelled Vertices To add a label to each vertex of a polyline we use the same method as that of labelling a point line or triangle We simply add a string type attribute label and an integer type attribute lc LabelledVertexPolyline x y sq le label 1363 3013 1 0 1363 3013 2942 3010 2 0 2942 3010 3426 1508 3 0 3426 1508 2148 583 4 O 2148 583 873 1514 5 0 873 1514 6 0 1363 3013 1363 3013 Table 4 9 Relation LabelledVertexPolyline 4 2 EXAMPLES OF DISPLAYING 2D GRAPHS USING FLAT RELATIONS 49 relation LabelledVertexPolyline x y sq lc label lt 1363 3013 1 0 1363 3013 2942 3010 2 0 2942 3010 3426 1508 3 0 3426 1508 2148 583 4 0 2148 583 873 1514 5 0 873 15140 1363 3013 6 0 1363 3013 NewLabelledVertexPolyline lt display2D LabelledVertexPolyline Figure 4 18 jRelix input for displaying a sequenced polyline with labelled vertices eet ves Fier ori OA S849 lise Se Zoom Grid 1 Mode NONE Figure 4 19 Displaying a sequenced polyline with labelled vertices 50 CHAPTER 4 USER S MANUAL ON DISPLAY2D 4 3 Examples of Displaying 2D Graphs Using Nested Relations 4 3 1 Displaying a Sequenced Polyline with a Label If a polyline is closed and it has no self intersection a labe
78. ng a flat relation Example A dummy flat relation named Picture which stores graphical informa tion needs to be displayed A dummy flat relation named Vocab will be the vocabulary relation used for our display operation To display the relation Pic ture we input NewPicture lt display2D Vocab Picture 5 2 1 Non Text In this section 5 2 1 we assume that the relation Picture does not contain any text strings In the next section 5 2 2 we will introduce text strings to the relation Picture and show how to deal with them As mentioned in section 5 1 4 the evaluateDisplay2D algorithm analyzes the attributes of the relation Picture and determines that it is a flat relation Then function drawRel which is included in Interpreter java file is invoked Before the relation Picture is displayed in an Xfig window we need to do the following 70 CHAPTER 5 IMPLEMENTATION OF DISPLAY2D Determine the Type of the Graph Represented by the Relation Picture In the relation Vocab we go through the values of the attribute attribute tuple by tuple trying to find matches to the attribute names of the relation Picture It there is a match we get the value of the attribute meaning from the current tuple in the relation Vocab If the value is cart1 c1 which is a corresponding integer variable with an initial value 0 increases by 1 If it is cart2 c2 which is also a corresponding integer variable with an initial value 0 increas
79. nstall Xfig and start the jRelix system This manual will not elaborate on the installation process for Xfig however this information can be found amongst the official Xfig doc umentation at http xfig org userman frm installation html To start jRelix go to the directory where jRelix is installed and type java JRelix 35 36 CHAPTER 4 USER S MANUAL ON DISPLAY2D mimi JRelix java JRelix Starting stand alone JRelix Relix Java version 0 93 Copyright c 1997 2005 Aldat Lab School of Computer Science McGill University Figure 4 1 Starting jRelix 4 2 Examples of Displaying 2D Graphs Using Flat Relations 4 2 1 Displaying Text To display text a text string and the coordinates of its first letter must be provided The text will be shown in a white box with a black border For example we want to print three strings 5000 4000 2000 4000 and 5000 3000 at the same coordinates that appear in each string respectively We have to declare a relation containing the strings and then call display2D operator to display the text Text x y textstring 5000 4000 5000 4000 2000 4000 2000 4000 5000 3000 5000 3000 Table 4 1 Relation Text 4 2 EXAMPLES OF DISPLAYING 2D GRAPHS USING FLAT RELATIONS 37 domain x intg domain y intg domain textstring strg relation Text x y textstring lt 5000 4000 50
80. ntation Tool Relations extract synthesize render Figure 1 1 A linear model for generating a graphical visualization from relational data Three Dimensional Data For scientific data visualization such as architectural and medical applications two dimensional images can not always provide a comprehensive mapping from the data to the graphical presentation Therefore it is better to use three dimensional data visualization For example the Visible Human Project NSP96 created a collection of detailed three dimensional representations of the human body Through a user interface in the National Library of Medicine users can visualize the collection browse contents and retrieve images Another example is WebBook CRY96 a three dimensional representation for HTML Web pages Each page of WebBook is a page from the web A collection of web pages is visualized as a simulated three dimensional physical book WebBook users can quickly interact with each page and find the connections between the pages of the book Multi dimensional Data Multi dimensional data consists of more than three attributes Most relational and statistical databases are considered to be multi dimensional data The parallel coordinate system Ins81 proposed by Inselberg is an effective tech nique to present multi dimensional data It maps higher dimensional data sets into two dimensions For Cartesian coordinates all axes are perpendicular Therefore
81. o the original graph or introducing a new polyline into the original graph which contains a polyline are not supported by the current system Polyline To determine that the original graph is a polyline we examine the value of the global integer variable polyline_flag mentioned in section 5 2 If it is 1 it indicates a polyline Recall that in section 4 2 8 we had drawn a pentagon from the relation Polyline The Xfig code for the pentagon is shown in Figure 5 11 To determine whether the user adds more objects points lines tri angles and polylines to the original graph we skip the first nine lines of the Xfig header and the two lines of code for the pentagon If we find that there are additional lines it indicates there are other objects Therefore these updates would violate Rule 1 FIG 3 2 Landscape Center Metric Letter 100 00 Single 2 1200 2 210107 50 1 10 00000 1006 1363 3013 2942 3010 3426 1508 2148 583 873 1514 1363 3013 Figure 5 11 Xfig file for a polyline Non polyline If polyline_flag is not equal to 1 the current graph is non polyline First we need to figure out the shape represented by the Xfig file The number of points in an Xfig object indicates the shape of the object Table 3 2 shows the number of points npoints of a type 2 Xfig object in its last parameter listed If npoznts is 1 it represents a 5 4 UPDATING THE DISPLAY 85 point If npoints is 2 it represents a
82. ogate numbers are stored in the nested attributes In the dot relations the attribute id contains the surrogate numbers linking the current dot relation to its corresponding upper level relation Note that all dot relations have the attribute d In our example the nested attribute Lines in the relation Graph has surrogates 1 and 2 stored In the relation Lines attribute id has value 1 and 2 Therefore the first two tuples in the relation Lines can be linked to the first tuple of the relation Graph by surrogate 1 The last two tuples in the relation Lines can be linked to the last tuple of the relation Graph by surrogate 2 Besides the command pr there are two additional commands for performing operations on declared relations To remove a specific relation from the system we use command dr 18 CHAPTER 2 OVERVIEW OF JRELIX gt pr Graph label Lines group1 1 group2 2 relation Graph has 2 tuples gt pr Lines id x1 yl x2 y2 1 2000 1000 3000 1000 1 5000 3000 1000 2000 2 1500 500 10000 3000 2 2000 2000 1500 3000
83. olar Coordinates ulary relation for arcs The polar coordinates consist of two parts the radius r and the angle a and are defined in terms of Cartesian coordinates by x r cos a y r sin a 6 2 FUTURE WORK 95 Currently our implementation of display2D uses the Cartesian coordinate system to draw graphs from relations Compared to the Cartesian coordinate system the polar coordinate system uses less complicated equations to represent some curves such as circle arc cardioid rose curve etc Therefore we could consider introducing the polar coordinate system into display2D We can use the vocabulary relation in Table 6 5 to name the attributes and their meaning for the polar coordinate system attribute meaning r polarl a polar2 Table 6 5 A vocabulary relation for the polar coordinate system Now a relation representing circles or open ended arcs would be simplified to the following format CircleArc r a 6 2 3 Text Length In section 5 1 5 we mentioned that the current implementation of the display2D operation can approximately calculate for any font size the length of a text string in Times Roman which is the default font in Xfig However there are 34 more fonts available in Xfig Therefore we need to develop a mechanism which can find the accurate length of a text string in any font and font size 6 2 4 A Simpler Method to Label Points with Their Coordi nates Rec
84. on has 1 tuple Figure 2 12 Example of a p join operation Name Operator Definition Natural join RicompS w z Rw OS 40 Empty intersection join R sep S w z Ru NS 0 Superset join R sup S w z Ru 2 Sz Proper Superset join R gtjoin S w z Ry D S Equal join R egjoin S T w 2 Ru S Subset join R lejoin S w z Ru C S Proper subset join R Itjoin S w z Ru C Sz Non proper superset join R gtjoin S w z Rw Sz Non equal join R eqjoin S w z Ru Se Non subset join R lejoin S w z Ru Z Sz Non proper subset join R Itjoin S w z Ru L Sz Non superset join R gejoin S w z Ry 2 Sz Table 2 3 o join operators 26 CHAPTER 2 OVERVIEW OF JRELIX gt domain x y code intg gt domain label colour strg gt relation Text x y label colour lt 1000 2000 text1 blue 1000 4000 text2 red gt relation ColourCode code colour lt 1 blue 2 green 3 cyan 4 red gt pr Text 4 4 4 4 x y label colour 4 4 4 4 1000 2000 texti blue 1000 4000 text2 red 4 4 4 4 relation Text has 2 tuples gt pr ColourCode
85. r this text string is shown in Figure 3 4 401 49 1 O 12 0 000 4 180 1515 1975 2000 display2D operation 001 Figure 3 4 Sample Xfig code for a text string The first number in Figure 3 4 is 4 which is object_code The third number is 1 which is text_ colour A value of 1 indicates the colour blue The next number 49 gives the depth of the text The sixth number 0 gives the font of the text which is the default font Times Roman The seventh number 12 is font_size The eighth number 0 000 is angle Using the same idea we can match the remaining parameters in Table 3 3 to the remaining values in Figure 3 4 For additional parameter values refer to Appendix A Table A l Type 6 Xfig Object Type 6 Xfig objects are used to glue several objects together into one compound object unit in a virtual box The format for the type 6 Xfig object is shown in Table 3 2 NATIVE FIG FORMAT Type Parameter Description Default Name Value int object always 4 4 int sub_type 0 Left justified 0 int text_colour enumeration type text colour 0 int depth enumeration type layer depth 50 int pen_style always 1 not used 1 int font enumeration type 0 float font_size font size in points 12 float angle radians the angle of the text 0 000 int font flags bit vector 4 float height in fig units text height N A float length in fig units text length N A int X y coordinate of the o
86. relation Lines is generated We will provide more details about this in section 2 1 2 gt domain x1 yl x2 y2 intg lt lt integer type domain gt gt gt domain label strg lt lt string type domain gt gt gt domain Lines x1 y1 x2 y2 lt lt nested domain gt gt gt domain Graph label Lines lt lt nested domain with 2 level nesting gt gt Figure 2 1 An example of domain declaration To display the information for all the domains currently declared in the system we use the command sd To show the information for a specific domain we use the command sd followed by the domain name sd lt dom_name gt Given the domains declared in Figure 2 1 the output for the sd command is shown in Figure 2 2 To delete a specific domain from the system we use the command dd followed by the domain name dd lt dom_name gt 2 1 DECLARATIONS 15 gt sd E AR N Domain Entry 2 2 S 2 i 25 Name Type NumRef IsState Dom_List y2 integer 1 false yl integer 1 false Lines idlist 1 false id x1 yl x2 y2 Graph idlist 0 false id label Lines label string 1 false x2 integer 1 false x1 integer 1 false gt sd x1 SSS SHS SRS SS 2 SS Domain Entry 2 5223 Name Type NumRef IsState Dom_List x1 integer 1 false Figure 2 2 Sample output for the command sd 2 1 2 Relation Declarations As mentioned in the l
87. riangles are 2000 3000 3000 2000 and 1000 4000 Therefore by taking the average the text string Three Triangles has coordinates 2000 3000 82 CHAPTER 5 IMPLEMENTATION OF DISPLAY2D Nested Triangles label Triangles xl yl x2 y2 x3 y3 Ic fe 1000 2000 3000 1000 2000 6000 0 7 Three Triangles 2000 3000 4000 1000 3000 2000 0 7 1000 1000 1000 3000 1000 8000 0 7 Table 5 3 Relation Nested Triangles 5 4 Updating the Display The updating algorithm is implemented in detectFileDiffThread java file The class detectFileDiffThread implements the Java Runnable interface and rewrites the method run contained in the Runnable interface As mentioned in section 5 1 4 the evaluateDisplay2D algorithm creates a copy of the current fig file For example if the current file is named with 1 fig then the copied file is named _1 fig In the method run by comparing the current and the copied files we can detect whether there are any updates made by the user In Figure 5 10 we give the algorithm for the function run Most of the steps listed in the function run are self explanatory however we will pay special attention to lines 7 10 and 19 in the algorithm e Line 7 How to check if the updates violate the three updating rules The three updating rules have been introduced in section 4 5 Now after listing ea
88. ributes of the relation Graph and determines that it is a nested relation Then the function dispNestedRel which is included in Interpreter java file is invoked Before explaining the algorithm for the function dispNestedRel we need to also understand a function named rel_ Type which gets called by dispNestedRel function rel_Type Relation r The function rel_Type is used to determine the hierarchy of a node in its cor responding tree structure The node which is actually a relation is passed to the function which returns an integer value of 1 2 or 3 A return value 1 indicates that it is the root of the tree A return value 2 indicates that it is an intermediate node of the tree A return value 3 indicates that it is a leaf node 76 CHAPTER 5 IMPLEMENTATION OF DISPLAY2D Graph NestedPolyline LabelledTriangle 1 3 Labelled Triangle id xl yl x2 y2 x3 y3 lc fe fp label 3 3000 1000 5000 1000 5000 2500 6 1 50 Tri2 3 5000 4000 2000 4000 5000 3000 1 6 50 Tril Polyline id x y sq 873 1514 5 1363 3013 1 1363 3013 6 2148 583 4 2 3 NestedPolyline id label Ie Polyline 1 P1 0 2 2942 3010 3426 1508 OPwpo ly wooly wooly wo ly bv Figure 5 6 Nested relation Graph and its underlying dot relations Graph
89. right Left difference join djoin left Right difference join drjoin right Symmetric difference join sjoin left U right Table 2 2 p join operators e o joins The o joins extend the truth valued comparison operations on sets to relations by applying them to each set of values of the join attribute for each of the other values in the two relations Mer84 We define the o joins using the following notations In relation R W X and S Y Z Ry is the set of values of X associated by R with a given value w of W and S is the set of values of Y associated by S with a given value z of Z If W and X are disjoint sets of attributes of R and Y and Z are disjoint sets of attributes of S the following definitions shown in Table 2 3 are held Note that X and Y could be the same set of attributes but at the very least they must be compatible attribute sets Figure 2 13 gives an example of o join operations 2 2 RELATIONAL ALGEBRA gt pr Points1 x1 y1 1000 2000 1000 4000 relation Pointsi has 2 tuples gt pr Points2 x1 y1 1000 2000 3000 1000 relation Points2 has 2 tuples gt pr Pointsi djoin Points2 Hosted s q as x1 yl Joera A E 1000 4000 A re ishepnas cases expressi
90. rigin in fig units N A the lower left corner of the string char string ASCII characters starts after a blank N A character and ends before the sequence 001 which is not part of the string Table 3 3 Type 4 Xfig Object Format 33 3 4 The Xfig code for a compound object that is a combination of the line in Figure 3 3 and the text string in Figure 3 4 is shown in Figure 3 5 The first number in Figure 3 5 is 6 which is object_code The next four numbers 1935 1485 4050 and 3555 give the coordinates of the upper left corner 1935 1485 and the lower right corner 4050 3555 of the box in which the line and the text string reside These box coordinates are calculated by Xfig The next two lines represent the line and are the same as the code appearing in Figure 3 3 The fifth line is the text string from Figure 3 4 The last number on its own separate line is 6 indicating the end of the compound object 34 CHAPTER 3 OVERVIEW OF XFIG Line Number Type Parameter Name Description int object_code always 6 int upperleft_corner_x Fig units 1 int upperleft_corner_y Fig units int lowerright_corner_x Fig units int lowerright_corner_y Fig units 2 the 2nd last line objects last line 6 Table 3 4 Type 6 Xfig Object Format 6 1935 1485 4050 3555 210247 50 1 1 0 000 0 O 1002 4000 1500 3000 3500 4 0 1 49 1 O 12 0 0000 4 180 1515 1975 2000 displ
91. rom existing ones and also to generate new values from existing values in a tuple or from values along an attribute The domain algebra consists of horizontal and vertical operations e Horizontal operations Constant Rename Function If then else e Vertical operations Reduction Equivalence Reduction Functional Mapping Partial Functional Mapping 1 2 2 jRelix jRelix the java implementation of a Relational database programming language in Unix was developed in the Aldat lab of the School of Computer Science at McGill University jRelix contains a database management system DBMS and a program ming language Aldat Algebraic Data Language which supports relational alge bra and domain algebra on flat and nested relations Hao98 Yua98 Sun00 Kan01 Cha02 The integration of computations procedures and functions Bak98 and ADT Abstract Data Type Zhe02 to jRelix provides procedural abstraction and data abstraction A GIS editor Geditor Che01 in jRelix allows users to view graph ical maps and provides a set of GIS functions jRelix aldatp aldat protocol Wan02 integrates collaborative and distributed Internet capability into jRelix 1 3 MOTIVATION 11 1 3 Motivation The graphical representation of information is referred to as information graphics The basic objects forming an information graphic are text points lines boxes arcs and circles The basic elements used to describe
92. s e e ARS 38 4 2 3 Displaying a Set of Labelled Points 38 4 2 4 Displaying a Set of Lines la AAA ee 41 4 2 5 Displaying a Set of Labelled Lines 42 4 2 6 Displaying a Set of Triangles 44 4 2 7 Displaying a Set of Labelled Triangles 45 4 2 8 Displaying a Sequenced Polyline 47 4 2 9 Displaying a Sequenced Polyline with Labelled Vertices 48 4 3 Examples of Displaying 2D Graphs Using Nested Relations 50 4 3 1 Displaying a Sequenced Polyline with a Label 50 4 3 2 Displaying Several Polylines or a Combination of Different Shapes 51 4 4 Displaying a Graph with a Vocabulary Relation 53 4 5 Examples of Updating the Display 56 dudo Walid Updates 20x E ears amp eel a PG a TES 57 4 5 2 Invalid Updates sein 6 dee IO 59 5 Implementation of display2D 63 Bist a O O E E eee Break Be 63 5 1 1 System Architecture A ag take ne Ogee Ye oe 63 5 1 2 Building the Display2D Syntax ad 64 5 1 3 Examples of the Display2D Syntax Tree 65 5 1 4 evaluateDisplay2D Algorithm 65 Bolo Class MSGID sis e oi si ti li eS 68 5 2 Displaying 2D Graphs Using Flat Relations 69 SAE ANOTE a e Gaul ee ae ee Et 69 Oe O O e Bile da a Ne a S 72 5 3 Displaying 2D Graphs Using Nested Relations 75 54 Updating the Display atadas e E ore oe oe es 82 6 Conclusions 91 Gall a A A ge a ai
93. s the relation may have other attributes that are used to describe the properties of a shape To determine the existence of such attributes we compare the first 15 numbers in the first line of each block to the corresponding default values of a type 2 Xfig object shown in Table 3 2 If there is a difference the relation needs an additional attribute to store it For example in block 2 the fifth number 4 is not equal to the correspond ing default value 0 Therefore we must create an integer type attribute to store the pen colour which is the fifth parameter shown in Table 3 2 Us ing the corresponding display2D system keyword for pen_colour we name this attribute lc 4 Determine the content of each tuple of the relation Now that the number of tuples and the attributes of the relation are deter CHAPTER 5 IMPLEMENTATION OF DISPLAY2D mined we can fill in the values of our relation tuples The second line of each block gives the coordinates of the npoints in order We simply retrieve the numbers in the second line and put them in the coordinate attributes of the corresponding tuple Next we obtain the values for the other at tributes which store the properties of a shape if we find non default values in the first line of a block Then we store them in the corresponding tuple A relation representing the three points in our example is shown in Table 5 4 e Line 19 The purpose of putting the thread to sleep It is no
94. s PostScript GIF JPEG etc SS02 A screen shot of the current Xfig system Version 3 2 4 SS02 is shown in Figure 3 1 To start Xfig we use the command xfig To open an existing Xfig file we use the following command xfig options filename The command line options are used to specify the settings of the Xfig window such 2T 28 CHAPTER 3 OVERVIEW OF XFIG Current File Message Panel Top Ruler Mouse Function Indicator Unit Box a Main Menus upa Polygon S To Drawing Mode Panel Editing Mode Panel Canvas Attribute Panel Side Ruler Figure 3 1 Xfig display window as window size the font of the menu the display background colour etc Refer to the Xfig user manual at http xfig org userman options html options for a detailed list of options 3 2 Native Fig Format The native Fig format is stored in a text file where the filename ends with fig The file contains two parts a header and objects 3 2 NATIVE FIG FORMAT 29 3 2 1 Header The first nine lines of an Xfig file are its header The contents of each line in the header are listed in Table 3 1 A sample Xfig file header which will be used in the later chapters is shown in Figure 3 2 Line Type Name Description 1 comment HF Fig 3 2 contains the name and version of the line current Xfig system A line beginning with a is a comment line 2 string orientation Landscape or Portrait 3
95. splay this nested relation We will present the detailed algorithm in section 5 3 If there are no IDLIST type attributes then GraphExpression is a flat relation Function drawRel is called to display this flat relation We will explain this in section 5 2 In addition the evaluateDisplay2D algorithm uses the Java Runtime exec to invoke Xfig to run the current fig file externally Also the algorithm makes a copy of the current fig file and creates a thread monitoring whether the user makes any 68 CHAPTER 5 IMPLEMENTATION OF DISPLAY2D changes to the current display and whether the update is valid In section 5 4 we will describe the algorithm for updating the display 5 1 5 Class XfigObj Currently the display2D operation is implemented to display points lines triangles polylines open closed or text Therefore to fulfill the needs of display2D Xfig objects with type 2 type 4 and type 6 have been implemented in XfigObj java For display2D type 2 Xfig objects are used for points lines triangles and polylines open closed In section 4 2 1 we mentioned that any text must appear in a white box with a black border This implies that to display text we need two parts One part is a text string and the other is a box with a white filling colour and a black border colour which is represented by a type 2 Xfig object We use type 4 Xfig objects for the text string and type 6 Xfig objects to glue the text string and t
96. string justification Center or Flush Left 4 string units Metric or Inches 5 string papersize Letter Legal Ledger Tabloid 143 143 143 143 14 143 A BOP D E ALP 143 113 143 143 99 143 A3 A2 AT AQ and B5 6 float magnification export and print magnification in 7 string multiple page Single or Multiple pages 8 int transparent Colour number for transparent colour for colour GIF export 3 background 2 None 1 Default 0 31 for standard colours or 32 for user colours 9 int resolution coord_system resolution is always 1200 ppi Fig units inches and coordinate system 1 origin at lower left corner not used 2 origin at upper left Table 3 1 Xfig file header 30 CHAPTER 3 OVERVIEW OF XFIG FIG 3 2 Landscape Center Metric Letter 100 00 Single 2 1200 2 Figure 3 2 A sample Xfig file header 3 2 2 Objects As defined in the official Xfig documentation S502 an Xfig object can be one of the following seven types Type 0 Colour pseudo object Type 1 Ellipse which is a generalization of circle Type 2 Polyline which includes polygon and box Type 3 Spline including closed open approximated interpolated xspline spline Type 4 Text Type 5 Arc Type 6 Compound object which is composed of one or more objects
97. style_val 0 000 int join_style enumeration type 0 Miter join 0 int cap_style enumeration type 0 Butt cap style 0 int radius unit 1 80 inch radius of arc boxes 1 1 not used int forward_arrow 0 off 1 on 0 int backward_arrow 0 off 1 on 0 int npoints number of points N A Table 3 2 Type 2 Xfig Object Format 210247 50 1 1 0 000 0 O 1002 4000 1500 3000 3500 Figure 3 3 Sample Xfig code for a line 32 CHAPTER 3 OVERVIEW OF XFIG The first number in Figure 3 3 is 2 which is object_code that is always 2 for type 2 Xfig objects It is listed in the first row of Table 3 2 The third number in Figure 3 3 is 0 which corresponds to line_style A value 0 for line style indicates a solid line The fourth number 2 gives the thickness of the line The fifth number 4 is pen_colour A value of 4 for pen_colour indicates red Next we have fill_colour which is 7 A value of 7 for fill colour indicates white Using the same idea we can match the remaining parameters in Table 3 2 to the remaining numbers in the first line in Figure 3 3 For additional parameter values refer to Appendix A Table A 1 Type 4 Xfig Object Type 4 Xfig objects are used for text Only one line of Xfig code is used Table 3 3 lists the parameters for type 4 Xfig objects For example we want to display a text string display2D operation in blue at coordinates 1975 2000 at the layer with depth 49 The Xfig code fo
98. t it is a relational expression which stores the meaning of the attributes in the GraphExpression which is usu ally the relational expression that stores the graphical information and needs to be displayed In the previous examples we left the VocabularyExpression empty In fact a system built in relation named vocabulary is used automatically By printing this relation shown in Figure 4 24 you will realize that the attributes used in all of the 54 CHAPTER 4 USER S MANUAL ON DISPLAY2D previous examples e g x y sq le fc fp etc are listed in the relation vocabulary gt pr vocabulary do attribute meaning do lx cart1 x1 cart1 x2 cart1 x3 carti x4 cart1 y cart2 y1 cart2 y2 cart2 y3 cart2 y4 cart2 sq sequence lc line_colour fc fi11_colour tc text_colour fp fi11_pattern 1s line_style 1t line_thickness dl dash_length ft font fs font_size dp depth js join_style cs cap_style fa forward_arrow ba backward_arrow do do relation vocabulary has 25 tuples Figure 4 24 Print relation vocabulary Note that in the relation vocabulary all of the values for the attribute meaning are system keywords For example cart1 always means Cartesian coordinate x and cart2 always means Cartesia
99. t necessary that the first statement in line 3 of the while loop is executed right after one while loop cycle is done The reason is that the user needs a short period of time to manipulate the graph before he she saves the updated graph Three seconds is picked as the inactive time for the thread because it is a short period of time Also it is not a relatively long period for the thread to sleep so we will not miss an execution of the while loop if the user saves the updates while the thread is sleeping x y lIle 2000 4000 0 5000 3000 4 5000 4000 0 Table 5 4 A relation represented by the Xfig file from Figure 5 15 Chapter 6 Conclusions This chapter summarizes the work accomplished in this thesis and provides sugges tions for future research and development 6 1 Summary In this thesis we presented the design and implementation of a two dimensional display editor for relations display2D The implementation of the display2D operation has several achievements e A new syntax is introduced into the jRelix system This syntax allows users to invoke the display2D operator on a declared relation which needs to be dis played e The display2D operation provides the jRelix system users with a graphical pre sentation of the information stored in either flat or nested relations e The display2D operation allows users to visually interact with the displayed data and will generate a n
100. te 40 white 41 30 degree left diagonal pattern 42 30 degree right diagonal pattern 43 30 degree crosshatch 44 45 degree left diagonal pattern 45 45 degree right diagonal pattern 46 45 degree crosshatch 47 horizontal bricks 48 vertical bricks 49 horizontal lines 50 vertical lines 51 crosshatch 52 horizontal shingles skewed to the right 53 horizontal shingles skewed to the left 54 vertical shingles skewed one way 55 vertical shingles skewed the other way 56 fish scales 57 small fish scales 58 circles 59 hexagons 60 octagons 61 horizontal tire treads 62 vertical tire treads line_style Line style 1 Default 0 Solid 1 Dashed 2 Dotted 3 Dash dotted 4 Dash double dotted 5 Dash triple dotted line_thickness Line width Any int between 0 to 1000 inclusive Continued on next page 103 104 APPENDIX A KEYWORDS IN DISPLAY2D Keyword for Meaning Value display2D depth layer depth Any int between 0 to 999 inclusive Larger value means object is deeper than under objects with smaller depth font Font 1 Default font 0 Times Roman 1 Times Italic 2 Times Bold 3 Times Bold Italic 4 AvantGarde Book 5 AvantGarde Book Oblique 6 AvantGarde Demi 7 AvantGarde Demi Oblique 8 Bookman Light 9 Bookman Light Italic 10 Bookman Demi 11 Bookman Demi Italic 12 Cour
101. ter Name disply2D line_style line_style thickness line thickness pen_colour line_colour fill colour fill colour depth depth area fill fill pattern style_val dash length join_style join style cap_style cap_style forward_arrow forward_arrow backward arrow backward_arrow font font font_size font_size text_colour text_colour Table A 2 Xfig object parameter names and the keywords for display2D Bibliography Ado06 Ah196 AWS92 Bak98 BEW95 Burs6 CC96 Cha02 Adobe Adobe Premiere Pro Computer Software 2006 Christopher Ahlberg Spotfire An information exploration environment ACM SIGMOD Record 25 4 25 29 December 1996 Christopher Ahlberg Christopher Williamson and Ben Shneiderman Dy namic queries for information exploration an implementation and eval uation In Proceedings of the SIGCHI conference on Human factors in computing systems 1992 Patrick Baker Design and implementation of database computations in Java Master s thesis McGill University Montreal Canada 1998 Richard Becker Stephen Eick and Allan Wilks Visualizing network data IEEE Transactions on Visualization and Computer Graphics 1 1 16 28 March 1995 P A Burrough Principles of geographical information systems for land resources assessment Oxford Clarendon Press New York 1986 Tiziana Catarci and Isabel F Cruz Information visualization A
102. thod Call Execution Engine Figure 5 1 System Architecture The interpreter implemented as Interprer java repeatedly calls the parser receives the syntax tree generated by the parser traverses the syntax tree and decomposes it into a set of method calls executed by the execution engine The interpreter also interacts with the system tables to retrieve and update information about attributes relations views and computations in the database For display2D the interpreter must generate an Xfig recognizable file and invoke Xfig to display it If there are any changes made by the user to the original graph the interpreter has to analyze the update and create a new relation presenting the new graph In the jRelix system the execution engine contains the Relation Processor Hao98 the Virtual Domain Actualizer Yua98 the Computation Processor Bak98 the Events and Active Database He97 and the Nested Relation Processor Hao98 5 1 2 Building the Display2D Syntax In section 4 4 we introduced the formal syntax for the display2D expression The im plementation of the display2D syntax is completed with the addition of the following to the grammar specification file Parser jjt 5 1 OVERVIEW 65 e TOKEN lt DISP2D display2D gt We create a token DISP2D using the matched string display2D The token DISP2D will be sent to the parser e void Display2D disp2D lt DISP2D gt Expression
103. triangle Text and Polyline Picture x y sq colour s1 Since the relation Picture is a flat relation we are only able to display text strings next to each vertex of a polyline By using the method for locating text 5 3 DISPLAYING 2D GRAPHS USING NESTED RELATIONS 75 strings next to a point we require that if a vertex has coordinates X Y the corresponding text string have coordinates X 180 Y 180 In the next section 5 3 we will deal with a text string displayed in the centroid of a polyline that is closed and has no self intersection 5 3 Displaying 2D Graphs Using Nested Relations In this section we will use the example from section 4 3 2 to illustrate how display2D is implemented for displaying a nested relation Recall that in section 4 3 2 we displayed two labelled triangles along with a polyline labelled in its centroid from the nested relation Graph as shown in table 4 11 In Figure 5 6 the contents of the relation Graph and its underlying dot relations LabelledTriangle NestedPolyline and Polyline are shown From this we see that we can use a tree structure to represent a nested relation The top level relation is the root of the tree Depending on its level in the nested relation an underlying dot relation is an intermediate or leaf node of the tree The tree structure for the nested relation Graph is shown in Figure 5 7 As mentioned in section 5 1 4 the evaluateDisplay2D algorithm analyzes the att
104. ts of the document quickly special techniques have to be applied Through the work of many researchers there have been several tools created for visualizing large one dimensional data sets Developed in AT amp T Bell Laboratories the Seesoft software visualization system ESJ92 can display and analyze up to 50000 lines of source code Each line in the source code is visualized as a single coloured thin line The line colour can represent various aspects including the date that a line is created the date that a line is modified etc Each file is represented by a rectangle grouping all of the lines in the file The actual code can be displayed in an additional window The reduced representation of the source code provides users with an entire overview of a large software program It also allows users to accomplish 1 1 INFORMATION VISUALIZATION 3 version control efficiently ESJ92 Another approach to visualizing one dimensional data is Document Lens RM93 It visualizes multiple pages of text in a reduced size using a three dimensional fisheye view Fur81 This allows users to access parts of a presentation quickly without losing the global context Two Dimensional Data Two dimensional data consists of two attributes In a vector format two dimensional data is stored in terms of x and y coordinates Geographic information systems GIS is the most common research area in two dimensional data visualization GIS is a tool for storing an
105. ure has the depth value 49 and the nth text string attribute has the depth value 50 n where n is less than or equal to 49 i e s1 has depth 49 s2 has depth 48 and s3 has depth 47 Note that larger depth value indicates that the object is deeper than under objects with smaller depth values Also we should move each text string away from each other since they completely overlap If the first text string has coordinates X Y then we assign the nth text string with coordinates X 27x n 1 Y 27x n 1 Therefore if s1 has coordinates x y then s2 has coordinates x 27 y 27 and s3 has coordinates x 54 y 54 By using the constant 27 which represents 27 Fig units a very small distance in Xfig and display independent the length is the same regardless of the display screen dimensions we get the visual effect in Figure 5 5 Picture x y s1 s2 s3 Figure 5 4 Multiple text strings in the relation Picture Figure 5 5 Displaying multiple text In the flat relation Picture the number of text strings is equal to the number of tuples of the relation Picture times text_count We create an array of XfigObj objects text to store these text strings We examine each tuple of the relation 74 CHAPTER 5 IMPLEMENTATION OF DISPLAY2D Picture by using the same method described for non text to get the content of the text strings and the values for text_colour font and font_size Then we store the va
106. uter Studies 41 1 103 124 1997 Jock Mackinlay Automating the design of graphical presentations of re lational information ACM Transactions on Graphics TOG 5 2 110 141 April 1986 Macromedia Macromedia Director Computer Software 2004 Macromedia Macromedia Flash Computer Software 2005 Tamara Munzner and Paul Burchard Visualizing the structure of the World Wide Web in 3D hyperbolic space In Proceedings of the first symposium on Virtual reality modeling language pages 33 38 1995 T H Merrett Relational Information Systems Reston Publishing Co 1984 110 Mer99 Mer01 NSP96 PMR 96 RC94 RM93 RMC91 BIBLIOGRAPHY T H Merrett Basics About data relational information systems http www cs megill ca cs612 relationTxt ps September 1999 T H Merrett Attribute metadata for relational OLAP and data mining In Proceedings Eighth Biennial Workshop on Data Bases and Program ming Languages pages 65 76 Roma Italy 2001 Chris North Ben Shneiderman and Catherine Plaisant User controlled overviews of an image library a case study of the visible human In Proceedings of the first ACM international conference on Digital libraries pages 74 82 Bethesda Maryland United States 1996 Catherine Plaisant Brett Milash Anne Rose Seth Widoff and Ben Shnei derman Lifelines visualizing personal histories In Proceedings of the SIGCHI conference on Human factors in co
107. visualization giving meanings to interactive manipulations In Proceedings of the Seventh Interna tional Conference on Human Computer Interaction HCI International 97 1997 Brian V Smith and Tom Sato Xfig user manual version 3 2 4 http xfig org userman December 2002 Weizhong Sun Updates and events in a nested relational programming language Master s thesis McGill University Montreal Canada 2000 Zongyan Wang Implementation of distributed data processing in a data base programming language Master s thesis McGill University Montreal Canada 2002 Christopher Williamson and Ben Shneiderman The dynamic Home Finder evaluating dynamic queries in a real estate information explo ration system In Proceedings of the 15th annual international ACM SI GIR conference on Research and development in information retrieval pages 338 346 1992 112 Yua98 Zhe02 BIBLIOGRAPHY Zhongxia Yuan Implementation of the domain algebra in Java Master s thesis McGill University Montreal Canada 1998 Yi Zheng Abstract data types and extended domain operations in a nested relational algebra Master s thesis McGill University Montreal Canada 2002
108. w SM97 is an interactive visualization tool for a collection of web pages Each web page is a node placed on a flat horizontal plane which has two axes for representing two attributes of a web page The attribute can be a page name file size number of links number of images etc The position of the node is determined by the value of the two at tributes of the corresponding web page A user can select a node and lift it up By doing so the links of the selected node are raised so that the user sees a dynamic three dimensional display An alternative approach is a three dimensional hyperbolic space which is formed inside a sphere Each node represents a web page and is placed inside the sphere and connected to other nodes by Euclidean straight lines MB95 8 CHAPTER 1 INTRODUCTION 1 1 2 Interactive Information Visualization Dynamic Queries As the main approach for interactive information visualization dynamic queries AWS92 allow users to formulate queries with graphical widgets such as buttons check boxes or sliders and visualize results immediately For example when the user is moving the drag box in a slider the value for the corresponding criterion changes and simulta neously the user sees that the visualization is changing too Compared to Structured Query Language SQL dynamic queries do not require users to have knowledge of the syntax or semantics of query commands The graphical presentation of the data base and th
109. yst me de programmation de bases de donn es relationnelles jRelix Cette these cherche a int grer la visualisation des donn es relationnelles a jRelix L information graphique de toutes les formes g om triques de base telles que les points lignes polylignes triangles et texte peut tre stock e en relations Le dis play2D visualise ces relations les analyse et appelle l outil de dessin code source libre Xfig pour les afficher Avec les donn es affich es l utilisateur peut cr er sup primer d placer et modifier les divers objets de facon interactive Le display2D g nere ensuite une nouvelle valeur relationnelle partir du graphique mis jour Aussi la flexibilit du display2D quant a la d finition de relations de vocabulaire utilisant diff rents noms d attributs permet aux utilisateurs de mieux d crire les graphiques qu ils repr sentent ill Acknowledgments First and foremost I wish to thank my thesis supervisor Professor Tim Merrett for his attentive guidance valuable advice enthusiastic encouragement and generous financial support throughout the research and preparation of this thesis He provided much insight into the implementation and this thesis benefited from his careful reading and constructive criticism Many thanks to my colleagues in the Aldat lab especially Zongyan Wang who has provided great help in my understanding of the jRelix system I wish to thank my parents for their unconditional

Download Pdf Manuals

image

Related Search

Related Contents

Product User Manual  AP ブラインドベアリングプーラー プラケース 取扱説明書  Tender Notice for the Supply of Scientific Equipments in Botany  Manuale Utente - Furcht pianoforti Milano  Lenco Playconnect  Samsung SCC-B9371 User's Manual  Pro Series 55” LCD TV  Manuel d`utilisation  LANDIS – Goma laca nº 701  入 札 説 明 書  

Copyright © All rights reserved.
Failed to retrieve file