Home
here - Technische Universiteit Eindhoven
Contents
1. i Inline tcl include Local Tcl procedures m inline not components Tcl source text Inline tcl include inline executed to restore parameter settings for all system parts Figure 6 Structure of a visualization scenario file Every scenario references a file where the graph data is stored i e Graph file This file comes in various formats DAT RSF GVF or some other formats supported by the system The graph file contains the relations and attributes of the nodes and edges in the graph A scenario must also save the selections existing in the system at a given point in time The selections are saved as a separate selection file which is referenced by the scenario file The selection file contains the names of the existing selection and for each selection references to its nodes and edges The reason for saving selections separately from the graph data is that users might want to use the same graph data in different scenarios containing different selections Replicating the usually large graph data along with the different selections is thus not desired A scenario references also a number of component library files A component library file contains a number of components Components within this context are Tcl procedures scripts used by the SVF to perform a number of tasks such as glyph construction response to user actions in the GUI layout algorithms and so on The SVF can be cus
2. The bold case indicates the textual changes that are to be performed 7 Register the function with the Tcl environment in Tc Api cpp using the following command TclCreateObjCommand interpreter Tcl name my func context data interpreter instance of the Tcl interpreter used for interpreting the Tcl scripts in the application Tcl name name to be used for calling the native procedure in the Tcl scripts c name the name of the native procedure into the Kernel context data pointer to pass context data to the interpreter usually not used 0 A similar specification holds for the IVTclEdgeGlyphFactory Technische Universiteit Eindhoven 27 Version 0 1 31 10 2003 4 3 3 1 Mapper design trade offs As outlined there are a number of trade offs in the design of the mapper hierarchy As a rule higher level classes are simpler and faster to use but less customizable Lowe level classes offer more fine grained functionality and customizability but are more involved to set up and take more time and memory A few things must be noted when using mappers The Inventor scene graphs can take quite some time to construct and render The memory and speed are proportional to the scene graph s overall size and the amount of data sharing within Whenever possible the mappers attempt to share data when constructing such graphs For example a IVBasicNodeMapper will construct only one cube instance for all the nodes but draw it at t
3. Scenario files different formats E z E Visualization save 1 Graph dat rsf etc gt Scenario 2 Selections sel n 3 Scenario script tcl we load this N m Restored I Visualization M scenario sine LY n NN b N Contains commends to restore the scenario viewers preferences GUI Tcl libs to be loaded Example pr load data my graph dat pr include my lib tcl Figure 7 Scenario save restore mechanism While building a visualization scenario a number of selections attributes and operations can be defined In order to restore a visualization scenario from its persistent state information about these entities has to be saved too The selections and the attributes defined during the visualization scenario are stored in a sel file The particular operations defined during visualization are stored in a tcl file The tcl file is actually the only one that needs to be passed to the SVF for restoring a scenario Technische Universiteit Eindhoven 17 Version 0 1 31 10 2003 Besides operations this file contains also necessary commands to load data from the associated dat and sel files that are part of the visualization scenario and the domain specific Tcl libraries Technische Universiteit Eindhoven 18 The Software Visualization Framework User Manual 4 Framework customization guidelines The SVF has three layers of customization that allows a user to tailor it for a specific scen
4. Technische Universiteit Eindhoven 12 The Software Visualization Framework User Manual Graph structure Read Read Write Read Write Selection Attibutes Write Inventor scene graph Se Key Operation edit select map reader etc e Data selection graph Inventor scene graph Figure 4 General data flow diagram for the SoftViz tool Technische Universiteit Eindhoven 13 Version 0 1 31 10 2003 To better understand the operations we classify them into three types from the point of view of read write data access Selection operations This type of operation creates selection objects A number of examples of selection operations in the SVF follow below e Level Selection also called Horizontal Slice In many cases the graph one deals with has the notion of hierarchy or level Lower levels are contained in higher levels The edges between levels are thus containment relations Directory trees are the simplest examples of hierarchical graphs in which all edges are containment edges More complex containment relations exist in multi level software architectures For such graphs a level selection operation gathers all nodes and associated edges on a certain aggregation level in the layered graph This selection is useful for visualizing a system at a given level of detail e Tree selection also called Vertical Slice This operation gathers all no
5. IVMapperBase This is essentially an implementation hierarchy That is lower levels do not add provisions to the mappers but specialize in implementing the provisions The hierarchy is shown in Figure 14 The following outline the reasons for implementation of the various levels in the mapper hierarchy IVMapperBase Provides just the global interface all mappers must support that is TO DO IVMapper Specializes IVMapperBase by using two separate mappers one for the edges and one for the nodes The reason for IVMapper is to allow separate customization of node and edge mapping This should reduce the total number of mappers one has to write to achieve a given functionality The node and edge mappers are subclasses of IVMapperImp Imp stands here for implementation class The provisions of IVMapper are basically delegated to its two node and edge IVMapperImp subclasses So far we have specialized only the IVMapperImp subclasses i e we have only implemented a number of separate node and edge mappers It is though possible if needed to implement new IVMapperBase subclasses if a totally different way of drawing graphs is desired For example matrix plots are probably best supported as direct IVMapperBase specializations Technische Universiteit Eindhoven 23 Version 0 1 31 10 2003 Mapping IVMapperlmp IVMapper 1 creates Similar structure with IVNodeMapper not represented here a o
6. a 5 Viewing IVNodeMapper IVEdgeMapper 2 IVractoryNodeMapper IVSplatMapper E IVTcIGlyphFactory IVNodeGlyphFactory pr_my_proc Node gt get stuff from node u EN return glyph nodes by calling gfx Tvl proc IVBasicNodeGlyphFactory IVTcINodeGlyphFactory TclApi IVGlyph Figure 14 Mappers class hierarchy IVNodeMapper IVEdgeMapper Specializes IVMApperImp for mapping nodes edges IVBasicNodeMapper IVBasicEdgeMapper This is a very memory and speed efficient mapper that draws every node as a 3D cube every edge as a line No difference between the nodes edges is shown This is the default mapper the system uses in case no preferences are given or in case of falling back upon an error in the other mappers IVSplatMapper Contains a basic implementation for a splat mapper IVFactoryNodeMapper IVFactoryEdgeMapper This mapper is the entry point for providing per node custom drawing Customization is done by allowing the IVFactoryNodeMapper to call a glyph factory for every node it needs to draw The factory is a subclass of IVNodeGlyphFactory The factory receives the node to be drawn and must return an Inventor object SoNode subclass that is drawn for that node The factory can decide upon how to draw that node from this point on specializing the drawing can be done by specializing the IVGlyphFactory notthe IVFactoryNodeMapper A se
7. another graph layout toolkit We provide our own adapted version of the public GEM code Our version adds a number of basic functionalities and thus slightly modifies the original source The additions could not have been done without modifying the original source code for which reason we include the modified code in the SVF installation kit Moreover our version comes with both UNIX and MS Windows installations To install the toolkit under Windows open the Visual C project in the GEM source directory and build it to obtain the executable gem Alternatively just copy and unzip the gemWin bin zip file in which we provide a precompiled binary distribution for Windows Finally the path to the unzipped directory has to be provided to the SoftViz toolkit For this edit the init tcl script present in the TCL directory of the SoftViz installation and see the text about configuring GEM Tcl Tk Tcl Tk is used throughout the SVF for two purposes providing run time scripting capabilities and building GUIs A simple to install Tcl Tk 8 3 x distribution comes from ActiveTcl The installer creates a TcITk directory containing the headers libs and shells wish tclsh An interesting side effect of installing the ActiveTcl distribution is getting the BWidgets widget set These seem nicer better than Tix which is currently used in the SoftViz package above the basic Tk Moreover using BWidgets won t require installing Tix atop of the ActiveTcl distribution s
8. as the execution synchronization mechanisms One should attempt coding at this layer only if the desired functionality cannot be efficiently or effectively obtained via the Tcl layer Moreover this layer should be changed only if the modifications are deemed to be important and permanent for all further uses of the SVF system This layer of customization requires deep understanding of the architecture of the SVF Therefore it is only intended for very advanced users namely system architects and similar roles In the remainder of this document we present the general way of working with the SoftViz framework The aim is to give detailed guidelines and information on how to perform tailoring actions at the three aforementioned customization layers Technische Universiteit Eindhoven 6 The Software Visualization Framework User Manual 3 General Description In this section we present some general aspects related to installing and working with the SVF We begin with the description of basic actions like the installation of the software package We continue with more detailed information about the concepts and the actions that are to be mastered in order to be able to build useful visualization scenarios in the framework 3 1 Installation The framework is based on a visualization tool called the SoftViz tool and a number of third party packages see Figure 2 Users interact directly with the SoftViz tool only The SoftViz tool uses the thir
9. data Operations may have three types of inputs and outputs Selections Selections specify on which nodes and edges to operate For example to draw some data one first puts the data in some selection called e g sel and then invokes the display operation with the input sel Selections can also describe outputs For example the union operation may receive two selections sell and sel2 and output sel3 a selection containing the union of nodes in sell and sel2 Attribute keys Attribute keys specify on which attribute plane s the selection works For example an operation that computes a global cost on some nodes by adding up the costs of all nodes in its input selection needs the name i e key of the cost attribute to add up Similarly a layout operation takes as input a selection containing a subgraph and assigns an x y position to every node in the input The layout operations needs to know the keys names of the attributes in which to write the x y positions of the nodes it lays out Specific parameters Operation specific parameters are parameters an operation has that are not selections or attribute plane names Such parameters are e g thresholds and other configuration values specific to the working of the operation itself All the above is depicted in Figure 4 Here we see the general data flow diagram of the SVF that shows the dependencies between the data and operation concepts
10. then to a Tcl interpreter where they are converted into actions by Native Tcl Part of these actions can be executed by the Tcl interpreter itself Others need to be pre processed by Tcl system libraries or are redirected to the C C Kernel implementation of the SoftViz tool by Via C C Kernel The commands that are implemented in C C Kernel are designed to build manage and visualize the Inventor scene representation of the graph In the following we shall detail the most important subsystems of the Kernel layer For the developer the most interesting subsystems are the ones that are the most likely to be extended or customized Among these we discuss e Mapper subsystem implements the mapping of graph data to Inventor scene graphs e Other ones will come in here 4 3 3 Mapper Subsystem As explained before see Section 3 2 mappers provide various level of functionality in terms of mapping the selected graph data to visual representations in terms of drawing node and edge representations as well as drawing the selected elements in a separate way allowing one to query which elements nodes or edges are at a particular position in space Both above functionalities are optional in the sense that a mapper may decide to implement them in any way including not implementing part of whole thereof This allows one to easily develop new mappers in an incremental way The mappers are organized in a class hierarchy rooted at
11. 2 Technische Universiteit Eindhoven 30 The Software Visualization Framework User Manual Appendix I List of the SVF Tcl layer native commands LOAD WRITE commands pr_read_sel_file lt sel gt Reads a file that contains a selection Puts the selection into the standard All selection pr_load_own_format sel_name lt dat gt Reads a file that contains a graph and puts it into the sel_name selection If sel_name is not present the result is put into the standard All selection similar operation exists for writing a graph pr_write_sesion lt tcl gt Saves a scenario into a tcl file pr_compo_lib load lt mylib tcl gt Loads a library into the system so that one can use methods that belong to that library SELECTION commands lt int gt pr_num_selections Returns the number of selections that are active in the environment lt Selection gt pr get selection name char selection name Returns the selection that is identified by the string selection name lt Selection gt pr get selection idx int i gt Returns the selection that is identified by the integer id i Selection pr new sel char name Creates a new selection identified by the string name If the parameter is missing a standard unique name is given pr selection Selection s options Stereotype for general purpose operations on selections pr selection op Selec
12. SCS Runtime data Icons e g for buttons IV m Du TCL Initialization script Tcl component libraries Figure 3 The file structure for the Soft Viz tool The main part of the source code resides in the root directory of the application Most of the files containing the implementation i e cpp and the header files i e h are located there The remaining implementation and header files are to be found in the GRAPH_ED folder and they contain modified code of the original GEM toolkit see previous section The rest of the file structure i e the RSCS IV and TCL folders contains runtime data i e data that is not needed at compile time but only when the application is executed The RSCS folder contains various icons used by the GUI of the application The IV folder contains graphical specifications of the 3D objects used by the tool i e cubes spheres bars etc The TCL folder contains the tool instantiation script i e init tcl various GUI scripts e g for save load editing etc and domain specific tcl libraries i e tcl libraries that contain customizations script specific to a certain type of visualization As the SVF grows developers should include their own additions both compile time and run time to the SVF in the corresponding directories Technische Universiteit Eindhoven 10 The Software Visuali
13. Scripts 4 Fre gt Developer Extender Via system C C Kernel libtaries gt System Architect Figure 10 The customization scope and target for the Tcl layer 4 2 2 Provisions The SVF offers a mechanism by which Tcl component libraries can be defined implemented and than used by end users during runtime customization see Figure 10 These libraries i e Tcl system libraries are to be implemented in the Tcl language using standard Tcl calls i e Native Tcl Tcl proxies to natively implemented data structures i e Via C C Kernel and even other system libraries The file format of a Tcl component library has two parts see Figure 11 the registration part where the name the type and the textual description of the methods contained in the library are indicated the definition part where the actual implementation of the library methods is done Technische Universiteit Eindhoven 22 The Software Visualization Framework User Manual General manager of Tcl component libraries that provides mechanisms for AU loading unloading libraries ComponentLibrarySet Componentes MyLib1 tcl 1 MyLib2 tcl di A set of Tcl components stored as a _ _ Single file MyLib3 tcl D gt gi p REGISTRATION a ComponentLibrary A single Tcl procedure stored ina pr comp lib add proc name text descriptor 1 component library identified by pr comp lib add proc
14. Technische Universiteit Eindhoven Soft Vision Software Visualization Framework User Manual Author s Version Date Status Name October 2003 Voinea S L Telea A C 0 1 31 10 2003 Draft SoftVisionManual pdf Version 0 1 31 10 2003 Revision history Version Date Author Comments 0 1 31 10 2003 Voinea S L Document Created Telea A C Review history Version Date Reviewer Status after review Technische Universiteit Eindhoven 2 The Software Visualization Framework User Manual Contents VEL VIS Wat Mondo don Du E eee a cose sia Ser Een Eo Enea Pe bh Rede e E NEAR ES ep EH dss RE 2 Introduction i1 eee mea p en m d RO DH AR NER Eee en 3 General Description 3 1 Installations eoe ete Dr URTEIL oe E PEINE ERR EK 3 1 1 Soft Viz ToolFile Str ctute tenter tr Dee ARE AAE a 3 2 Visualization Concepts and Operation Principle 3 2 1 Data Representations erschossen eee ien 322 Operations 3 3 Visualization Scenarios 3 3 1 Scenario SITUCLUTe sss cocos eee et Petre D D mals 3 3 2 Scenario Saving and Restoring sss 4 Framework customization guidelines cee esesccecceecsseeseesececeeeeesecseceeessesaecaeeneeesesaeeateseeeeeeaeeas 4 1 Runtime Layer 2 treo epe ioa UR e ae dO eene e e ee a reo 4 1 1 Purpose 4 1 2 Mapper Runtime Customization 0 0 ccc cece ener 4 1 3 Requirements eee eene eite BRI ERE
15. ace i e widgets and command line or by Tcl script files This layer of customization has a small understanding threshold and easy learning curve as it does not require deep knowledge of the system Therefore it is suitable for end users Briefly put this layer is similar to the Technische Universiteit Eindhoven 5 Version 0 1 31 10 2003 point and click and command line operation of most programs Tel TN i At this layer more general customization actions can be performed These actions are expressed by scripts written in the interpreted Tcl language They are intended to encapsulate in the SVF more complex tailoring actions that occur in a large number of scenarios The purpose of this layer is to provide a way to write more complex actions and reuse them in different scenarios The unit of reuse is the Tcl script This layer of customization has a medium understanding threshold Nevertheless it requires a good conceptual understanding of the domain for which it is intended Also users should be familiar with scripting in the Tcl language or a similar one Therefore this layer is suitable for more advanced users especially for those who intend to extend the SVF or use it more than occasionally Kernel 5 2 S This layer contains the main engine of the system written in compiled C code At this layer basically any aspect of the system can be customized The kernel contains the main data structures of the system as well
16. alues of all nodes or edges that are known under a given key For example one wants to visualize the cost attribute of a given set of nodes We call the set of all attributes known under the same key an attribute plane Several attribute planes may coexist in a graph Attribute planes are implicitly described by their key and play an important role in the operation of the SVF Selections Selections are sets of nodes and edges In other words selections are just subgraphs of the complete graph the SVF maintains its data in The selection concept is essential for designating specific subgraphs for the SVF operations For example if one wants to visualize a subset of the complete data one creates a selection specifying in some way the data he is interested in and then passes this selection to the display function Selections are named and are kept as key value pairs in a global selection set similarly to the way attributes are kept in a node or edge In this way one can refer to a given subgraph by name in the operations one wants to execute There are no restrictions on the selections created i e they can contain any number of nodes and or edges Similarly a node and or edge may be contained in any number of selections at the same time However selection keys are unique in the selection set Selections refer rather than copy to their nodes and edges This means that if a given node or edge is in two or more selections the selections refer
17. ario Depending on the proficiency of the user and on the generality of the tailoring action the customization can range from the Runtime layer to the Tcl and eventually the Kernel layers 4 1 Runtime Layer 4 1 4 Purpose At this layer scenario specific customization actions can be performed In general words the runtime layer provides both a widget based GUI and a command line interface to the operations contained in the SVF Users can thus apply most of the operations by invoking them via the command line and or GUIs see Figure 8 and supplying the necessary inputs and outputs selection names attribute plane names and special parameters For an overview of these concepts see Section 3 2 Runtime eva gt Developer Extender gt System Architect Figure 8 The customization scope and target for the Runtime layer As explained above the runtime GUI actions are translated to Tcl actions that are either directly executed by the Tcl interpreter or passed to the kernel layer The reason to be of the GUI interface is to present the Tcl level functionality in a more compact and easy to use way In principle there can be as many GUI elements as functionalities provided by the Tcl layer Moreover these GUIs can be modified to suit different look and feel policies without changing the Tcl layer Consequently we shall not describe all the GUIs in detail For the sake of exposition we shall describe one GUI namely the one provid
18. cal information of the working of the SVF Technische Universiteit Eindhoven 4 The Software Visualization Framework User Manual 2 Introduction The Software Visualization Framework abbreviated SVF is intended to be a handy tool in building visualization scenarios for large amounts of relational data SVF s aim is to allow users to interactively explore complex relational datasets at different levels of abstraction Relational data exploration is a complex task having several dimensions or degrees of freedom These include but are not limited to the following data type various data types describe various application domains such as software structures network data architectural patterns communication and organization structures and so on Although structurally similar these datasets have different meanings so they are probably best visualized in different ways e data size relational datasets may range from a few tens to tens of thousands of elements Visualizing and interacting with large datasets clearly poses other problems as dealing with smaller ones Users should be able to configure visualizations depending on the size of the targeted datasets e visual metaphors different real world applications ask different questions about their data Consequently every two visualization scenarios would probably attempt to depict their data in different ways Users should be able to easily customize the way data is drawn in a certa
19. color components pr make line color int r gt int g gt int b gt Draws a line with the specified color components pr make file color int r int g int b gt Draws a file icon with the specified color components pr make bar color int r int g int b gt Draws a bar with the specified color components pr bbox color int r int g int b gt Draws a with the specified color components MISCELANEOUS commands lt Iterator gt pr selection Selection s iter nodes iter edges Returns an iterator for the nodes or the edges of the selection s lt Node Edge pr iterator lt Iterator i next node next edge Returns the next node or edge from the iterator i When it reaches the end it auto destroys itself Technische Universiteit Eindhoven 32 The Software Visualization Framework Appendix Il List of desired features User Manual Feature description Unify the aux and primary mappers One should simply have an IV Viewer with a fixed set of all known node edge mappers that can be on off toggled Picking could either use the 1st or an OR between picks in all mappers The IVMapper should simply maintain a list of IVNode EdgeMappers Should be quite simple to do Priority HIGH 002 Finish the splat mapper s resources Tcl GUI etc so it becomes really functional HIGH 003 Enhance the brushText fu
20. cond feature of this construction is that IVFactoryNodeMapper can switch at runtime between different factories and thus draw the same graph or even parts thereof in different ways A similar specification holds for the IVFactoryEdgeMapper IVBasicNodeGlyphFactory IVBasicEdgeGlyphFactory Technische Universiteit Eindhoven 26 The Software Visualization Framework User Manual This is the basic node glyph factory class It constructs a 3D cube for a given node Functionally it is very similar to IVBasicNodeMapper The difference that it is called separately for each node whereas IVBasicNodeMapper is called once for a whole selection Just as IVBasicNodeMapper IVBasicNodeGlyphFactory is automatically used by the mapper system as default factory or in case some custom factory has failed working A similar specification is available for the IVBasicEdgeGlyphFactory IVTclNodeGlyphFactory IVT clEdgeGlyphFactory These specializations of the basic glyph factories implement glyph creation by calling a user supplied Tcl procedure The idea is to allow users to design their node and edge glyphs by writing small Tcl procedures rather than C code In this way one can not only switch between factories at runtime but can also adapt and develop new factories at runtime by directly editing the Tcl procedures Ultimately a visualization scenario can employ a single mapper using a single node glyph factory that can switch between a numb
21. d party packages to implement a number of functionalities Visualization tool SoftViz GUI Tcl Tk Tix scripting Tel script C C Kernel GLUT Package Coin3D Inventor a GraphViz Package GEM Package c Tix library for GUI blocks like OpenFile dialog OpenGL System graphic device manager Figure 2 Software packages for the SVF The layered architecture of the SVF reflects the three layers of customization where tailoring actions can take place see Section 1 Also this layered structure determines the way the SVF is to be installed In the following we give a number of guidelines for the installation of the framework packages on a Microsoft Windows based system Installation under UNIX Linux is also possible Whenever the UNIX installation differs from the Windows one we explain the differences in the text Coin3D Inventor This package is responsible for the 3D display and interaction within the SVF Open Inventor is a library providing 3D scene modeling and interaction via a C API There exist a number of implementations of the original Inventor API first released by Silicon Graphics SGI under the IRIX operating system Briefly put all one needs is a complete Open Inventor compatible installation for a given platform consisting of the API coming as C headers and the binaries usually coming as a shared object or DLL There are various distributio
22. d user can switch by means of the GUI among three possible mappers see also Section 3 2 for the edge and the nodes of the graph Basic default Splat and Factory Basic is the default node edge mapper The SoftViz tool will also use it for graceful degradation when runtime errors are encountered in other selected mappers e g Factory The Splat mapper produces a splat field from the selected nodes and edges and can be displayed as a color or elevation plot The Factory mapper is used whenever the user wishes to specify a building engine i e factory that can be applied to each node or edge When the Factory mapper is chosen as a mapper for a visualization scenario the user can select at this level the specific type of factory to be used At this moment two alternatives are available Basic default and TclGlyphFactory Basic is the default factory mapper The SoftViz tool will also use it for graceful degradation when runtime errors are encountered in other selected factory mappers e g TclGlyphFactory The TclGlyphFactory type of factory mapper allows the user to select a Tcl procedure that specifies the appearance of the nodes and edges in the visualization scenario At this level the user can define a specific Tcl procedure that will determine the appearance of nodes and edges in the visualization scenario when the TclGlyphFactory type of factory mappers is used Requirements The Runtime layer of customization has a small und
23. des and containment edges reachable via containment relations from nodes in a given input selection For example one uses a tree selection to visualize subsystem structures e Conditional Selection also known as Filter This operation gathers all elements in an input selection that obey some attribute condition on its elements Filters are useful for queries such as show all nodes for which the cost attribute is higher than some threshold The common aspect of selection operations is that they do not modify the graph data but just create new selections Graph editing operations This type of operation constructs and modifies the graph data There are two types of editing operations e Structure editing Structure editing operations modify the structure of the graph by adding removing nodes and edges For example operations that read graphs from files in standard formats e g RSF GraphEd DOT GXL are structure editing operations e Attribute editing These operations create modify delete attributes from the nodes and edges attribute sets Besides the selection input attribute editing operations have also one or several attribute plane names as inputs The most common attribute editing operations are the metrics and the graph layouts The metrics may produce new attribute planes or single values The graph layouts produce position related attribute planes for the nodes and edges of a selection and decouple completely t
24. e an overview of what the following sections contain The following should be read by the user to understand what has to be further examined to accomplish the desired tasks within the SVF This document has the following sections 1 Overview this is the current section 2 Introduction description of the layered structure of the SVF This section should be read by all users to get an understanding of the purpose and semantics of the several layers in the SVF Several users will then choose to go in depth in reading about specific layers depending on their proficiency and interests 3 General Description this section presents the general concepts all users should be familiar with when using the SVF such as installation and operation via the GUI and Tcl scripts This section should be real by all users End users should probably not go further than this section 4 Framework Customization this section details the various ways the SVF can be customized The purpose is to provide detailed documentation of the various system layers so that changes can be brought at the desired level of detail This section is not necessary for end users However users who plan to use the SVF more than for visualizing their datasets via pre built scenarios should have a quick read of this section Users already familiar with the GUI and scripting functionality of the SVF and who need more customization freedom to reach their goals will find here the complete techni
25. ee next paragraph To test the installation use the Windows Start menu to locate the ActiveTcl program folder and then either run the shells or go to the demos folder Finally the TclTk installation directory the exact path is found by issuing the set tcl library command in tclsh must be set as an environment var under the name tcl library using Control Panel System in Windows This is needed for the Tcl Init call from our own user code to work properly namely this call tried to find the script init tcl in the above directory Tix Tix is an add on library to Tk providing more complex nicer looking GUI widgets to the basic ones included in Tl Tix 8 x is currently needed by the SVF In the future it could be replaced by Tk s BWidgets package see Sec 3 above However if Tix is to be installed use the Tix 8 x package Technische Universiteit Eindhoven 8 The Software Visualization Framework User Manual containing the binaries for Windows This package comes as a ZIP that is to be simply unzipped into the TcITk installation directory the exact place to unzip is found by issuing the set tcl library command in a tclsh shell Next one has to set the TIX LIBRARY environment var to the directory where the tix8 dll is located This is the directory unzipped from the Tix distribution The env var can be set using the Settings System Advanced panel in Windows To test Tix locate the widget file in the Tix8 0 demos dir created at ins
26. er of Tcl glyph construction procedures For a list of available glyphs see Appendix I These glyphs are implemented in C in the Tc Api cpp file in the root folder of the source code for the SoftViz tool When writing new C implementations for glyphs a number of steps are to be followed In the example bellow the steps for building a node glyph are presented 1 Declare preferably in the VGlyph cpp root file and build a C glyph function that returns a pointer to a value of type SoNode This function should have the form SoNode my func char The list of arguments contain both standard e g color 0 1 0 2 0 1 and implementation specific parameters Inside the function body create a SoGroup variable Add default nodes to the created SoGroup i e SoColor SoMaterial etc Add specific stuff to the SoGroup i e the code that actually builds the glyph Return as function result the created SoGroup variable EP ERE Wrap the function in a Tcl shell using the following template int pr make my glyph ClientData cd Tcl Interp in int n Tcl Obj CONST obj f SSS eS SSS ger Tel euge lt claves nes p alae abe for i 1 i lt n i args i 1 Tcl GetString obj il args i 1 0 j naa Sam SSS SSS wieder INV gj Salzen Tcl Obj res Tcl NewLongObj long unsigned long IVGlyphs my_func args Tcl SetObjResult in res TSE Wlacign NOSE OES
27. erstanding threshold as it does not require deep knowledge of the system Therefore it is suitable for end users At the most basic level users should be able to load already saved scenarios to restore the system in a given state and just navigate in the viewers to visualize the data Next users can start executing a number of actions by manipulating the GUI of the tool For this knowing the tool s GUI is required together with a good understanding of the visualization concepts and operation principle see Section 3 2 Technische Universiteit Eindhoven 20 The Software Visualization Framework User Manual For more advanced users e g users that aim to specify their own procedures for the TclGlyphFactory basic knowledge of the Tcl scripting language is required and good understanding of the SoftViz Tcl public libraries for manipulating nodes edges selections layouts and viewers see Appendix I Technische Universiteit Eindhoven 21 Version 0 1 31 10 2003 4 2 Tcl Layer 4 2 4 Purpose At this layer general customization actions can be performed These actions are expressed by Tcl scripts and they are intended to encapsulate in the framework tailoring actions that occur in a large number of scenarios see Figure 10 The Tcl scripts created at this level are to be included in Tcl component libraries and they can be used by end users during Runtime layer customization of their visualization scenarios Runtime gt End User Tcl
28. ftware relations such as uses calls inherits from needs and so on Attributes model software aspects such as number of lines of code name of developer number of bugs version date programming language and so on Clearly any form of relational data can fit into the SVF attributed graph model Attributes Attributes refer to sets of key value pairs associated with a node or edge These sets contain information that is specific to each node or edge Just as structure this information can be used in the SVF to query or display specific aspects about the data at hand Similar to structure there are few restrictions about attributes Specifically any node and or edge may have any number of attributes An attribute is described by its name which is a text string and its value Within the same node or edge a key is unique Writing an attribute value under a given key erases the previous value known under that key if any or creates a new value if there was none Reading an attribute value under a given key returns the value known under that key if any or a default nil value if none was stored Currently the SVF supports a fixed set of value types integer floating point string pointer and one dimensional arrays of the basic types Internally provisions are taken to represent data in efficient ways Conversion between the basic types are done automatically to maximize simplicity Often one gives a special meaning to all attribute v
29. he different locations specified by the layout However a IVTclNodeGlyphFactory is obliged to construct a different Inventor scene subgraph for each node as it cannot assume any similarities for the different nodes Moreover it has to interpret a Tcl procedure call per node This makes the memory and speed consumption of Tcl based factories quite high In practice Tcl factories become quite memory and speed demanding for graphs over a few hundred nodes There are several solutions to this problem First specialized mappers higher in the hierarchy could be constructed for a given class of drawings Second some more complex data sharing and Tcl interpretation caching mechanisms could be implemented in the glyph factories 4 3 3 2 Syntax of the native implementation for Tcl system library commands A Tcl command implemented in C should have the following structure IME joie exexesoxw qi ClientData cd el Ines aber ame A Conse Telaio SSL char argument_i Tcl_GetString obj i char result my result Tcl SetObjResult in Tcl NewStringObj result 1 for a string return TCL OK i SOCCER RRO Input output parameters description in The instance of the Tcl interpreter n The number of arguments real arguments 1 for the procedure name obj The array of arguments result The result that the procedure has to return to the caller in the Tcl environment this value is not is not returned via the c
30. he mapping from the visualization of the graph Complex graph layout operations e g stacked layouts nested layouts may be generated by cascading simple ones The common aspect of graph editing operations is that they do not modify the selection set but only th graph data Mapping and visualization operations This type of operation maps the graph data to visual objects i e scene graphs and allows the user to interact with the data Four types of SVF components collaborate to carry out such operations e Mappers These are components that map their input selections to Inventor scene graphs Examples of mappers in the SVF are the glyph mapper and the splat mapper The glyph mapper creates a glyph for each node and edge in the input selection and positions these glyphs at the 2D or 3D coordinates provided by an attribute plane of the input nodes and edges Glyphs are described below in this section The splat mapper produces a splat field from the selected sub graph The splat field can be viewed as a color or elevation plot e Viewers The viewers display the scene graph constructed by mappers offer 2D and 3D navigation and support mouse based picking operations on the displayed data The result of a pick operation is a subset of the input selection called highlight selection which is displayed by the viewer in a special color highlighted manner Technische Universiteit Eindhoven 14 The Software Visualization Framework User Manual e G
31. iled C code They implement general system wide operations such as data access and operation synchronization Only actions that are specific to all visualization scenarios or that have strict speed and memory constraints should be embedded at this layer in the framework Runtime gt End User Tcl Scripts Tel Via Tel gt Developer Extender system C C Kernel libraries w nn Figure 12 The customization scope and target for the Kernel layer 4 3 2 Provisions 4 3 2 1 General data flow diagram Figure 13 contains the data and command flow diagram for the SoftViz tool Tcl user scenarios Tcl scripts N pr_ Tel Tel Via system C C Kernel libraries Native Tel C C Kernel Tcl via kernel Mapper Operations commands basic low level read write access to data IvMepper structures Graph Manager Has attributes name value GraphManager A SelectionList inspects writes Inventor scenegraph the scene to be rendered i e all So objects SoCamera SoCube SoLine Figure 13 General data flow diagram for the SoftViz tool Technische Universiteit Eindhoven 24 The Software Visualization Framework User Manual The end user commands are acquired by means of the GUI and or some user defined Tcl scripts at the Runtime customization level These commands are forwarded
32. in scenario e interaction metaphors similarly to the above interacting with a given dataset is tightly bound to the data semantics and the questions to be answered Users should be able to easily tailor the scenario interaction i e the actions the visualization tool should perform in response to user input SVF provides a general visualization framework with several layers of customization that allow users to construct specific visualization scenarios These customization layers attempt to address all the above degrees of freedom in constructing a visualization Depending on the proficiency of the user and on the generality of the tailoring action the customization can take place at three layers see Figure 1 Higher layers are simpler to use for non programmers but offer less customization than lower layers Lower layers offer more up to complete control on display and interaction but demand more programming skills from the user These layers are described next Runtime End User Tcl Scripts J Ease Power of of Tcl Y Developer use customization Extender 4 System Architect Figure 1 SVF customization layers Runtime i At this layer scenario specific customization actions can be performed The color shape number of objects and relations among them can be easily adjusted to meet the needs of a certain scenario The tailoring actions are executed as user commands given to the system by means of the user interf
33. ing runtime mapper customization 4 1 2 Mapper Runtime Customization The mapper runtime customization provides a set of GUIs that allow interactive changing of the mapper subsystem see Sec 4 3 3 for a complete description thereof There are four sub levels of tailoring in the Runtime customization layer for mappers see Figure 9 They range from sub levels that address general features of visualization i e Node Edge mapper see also Section 3 2 to sub levels where the actual appearance of nodes and edges can be easily tailored i e the Tcl procedure sub level Technische Universiteit Eindhoven 19 Version 0 1 4 Tcl procedure sub level etc 31 10 2003 Choose among Basic Splat Factory other se njeaj ejeuac Choose among different types of u _ factories Basic TclGlyphFactories Chosse among different possible representations based on the analysis of the input parameters Example if N large the draw red cube else draw blue sphere saunyeoy Jejnonieg Figure 9 The four sub levels of tailoring for the Runtime customization layer Mapper Node Edge Mapper Factory Tcl procedure 4 1 3 For the time being no customization is possible at this level Nevertheless the intent is to make customization possible here too by allowing the user to easily switch between more instances of the same visualization scenario At this level the en
34. ition and other types of attributes Figure 5 Common example of data flow for a visualization scenario Technische Universiteit Eindhoven 15 Version 0 1 31 10 2003 3 3 Visualization Scenarios Users perform several actions in a session of using the SoftViz tool Such actions are loading a data file selecting some data deciding how to map it via some glyphs opening viewers attaching some actions to the mouse events in the viewers etc A particular set of all above mentioned actions form a visualization scenario Building expressive scenarios for a given number of datasets is essential for getting insight into the data at hand Building an appropriate scenario for some given data may require a lot of time spent on analysis and tuning It is thus desirable to be able to restore a given scenario once built or to pass a given scenario to other users so they can use it right away on their data This section gives an overview on the way visualization scenarios are represented and managed in the SVF 3 3 1 Scenario Structure The main property of a scenario is that it can be restored once it has been saved In other words a scenario is persistent It is thus important to understand what exactly gets saved and how The structure of the visualization scenario in the SVF is depicted in Figure 6 dat rsf etc references joe tel references references
35. l as headers Minor change could be automated e g via factories define s in the source code e Two defines are needed in the project SOWIN NOT DLL and COIN NOT DLL or the DLL ones if DLLs are used rather than static linking These are needed for compiling applications against Coin3D and SoWin Nothing special here e The include and lib paths to sowin lib and coin lib must be set in the project when compiling it under Microsoft s Visual C e One should link either against the debug libraries of SoWin and Coin or against the non debug ones Just choose what you want the debug ones have the suffix d appended to the name e At runtime the sowin dll and coin dll must be available on the path as expected Under UNIX Linux IRIX one can install one of the various open source distributions of Open Inventor Nothing special to be noted here GraphViz GraphViz is a toolkit we use in the SVF to perform graph layouts The latest GraphViz distribution www research att com comes for UNIX as well as Windows The Windows installation is very simple it comes as a self extractor which creates a directory containing the command line executables dot neato dotty Ineato etc The command line parameters and functionality of these is identical with their UNIX counterparts so they should be usable from he SoftViz package in exactly the same way The installation of GraphViz is well documented in the GraphViz package itself GEM GEM is
36. lassic return mechanism but through a special call The command will be used then in Tcl in the following way pr XXXXX cuc ag aro x Remark the pr xxxxxis treated in the native environment as argO 4 3 4 Requirements This level of customization requires deep understanding of the system architecture of the visualization framework Therefore it is only intended for very advanced users namely system architects and similar roles who wish to tailor the kernel native C representation of data structures and access to them Technische Universiteit Eindhoven 28 The Software Visualization Framework User Manual Technische Universiteit Eindhoven 29 Version 0 1 31 10 2003 Glossary API Application Programming Interface Set of functions procedures that a software library module component offers to application developers that wish to integrate in an application the functionality provided by the library module component GUI Graphical User Interface The on screen representation of the user interface of a system matrix plot Representation model for a graph in form of a matrix in which the rows and the columns represent nodes in the graph and the cells indicate whether there is an edge between the nodes that are the coordinates of the cell References 1 A Telea amp all An Open Toolkit for Prototyping Reverse Engineering Visualizations 2002 Joint EUROGRAPHICS IEEE TCVG Symposium on Visualization 200
37. lyph Glyphs are 2D or 3D graphical objects that visualize a node or an edge in a viewer e Glyphs factories Glyph factories are small engines that are used by the mappers to construct a glyph from the attributes of a node and or edge Glyph factories are called by the glyph mapper for every node or edge Various glyph factories let mappers customize the way in which they construct their graphical representations Figure 5 depicts a common example of data flow for a visualization scenario The input selection is fed into a layout operator that performs a graph layout attribute editing operation The result of this operation is an attribute plane that contains position information for the input selection Enriched with the position attribute the input selection is further fed into a viewer The viewer uses a mapper to map the input selection to an Inventor scene graph which is then displayed it on the screen If picking is performed by the user in the viewer a highlight selection is generated This selection can be used further on as input selection for other graph editing mapping and viewing operations or any other operation that modifies the structure or the attributes of the nodes edges Input Selection d in the selection or even the selection itself Layout operator Position attribute Viewer mapper Highlight Selection 4 N N N NN Contains a mapper that transforms the data into a scene based on pos
38. meris UD RR 4 2 Tel E yet 5 eet deett et be quide kie 4 2 1 P Epose tme np HEIDE 4 2 2 Provisions ss ege eee E em tec eee 4 2 3 Requiremertits ne oie eie eor e e Mene edet ERREUR 4 3 Kernel Layer 4er rr trt e Me m dem t ed ee 4 3 1 P tpose cbe oot de adi ett ROO TO ER 4 3 2 PLOVISIONS acer n rop DR ER HERES I RN EN RR D ER TRI das CEN SEHE 4 3 2 1 General data flow diagramie iseitis t rina Ra nene eee 4 3 3 Mapper Subsystem scenei three ine 4 3 3 1 Mapper design trade offs 4 3 8 2 Syntax of the native implementation for Tcl system library commands 28 4 3 4 Requirements n ose er ee o anregt 28 Technische Universiteit Eindhoven 3 Version 0 1 31 10 2003 1 Overview The Software Visualization Framework abbreviated SVF is intended to be a handy tool in building visualization scenarios for large amounts of relational data SVF s aim is to allow users to interactively explore complex relational datasets at different levels of abstraction The SVF can be used by different users at various level of detail End users typically want to install and run the system to obtain some pictures Other users want to perform more involved actions that imply modifying some parts of the system In this document we describe the SVF at various level of details The aim is to support understanding and modifying the SVF to the desired level There are many ways in which the SVF can be customized In this section we giv
39. name2 text descriptor 2 a registration part where the ___ procedure is registered with the Tcl environment so that it can be used in Tcl scripts a definition part where the Tcl procedure is actually built DEFINITION name1 body1 name body2 Figure 11 The Tcl system library development support In order to be able to use the methods offered by a library one should load first the library in the system This can be done by using the Tcl command pr compo lib that belongs to the SoftViz standard Tcl system library loaded by default For a detailed description of this method see Appendix l At runtime the SVF maintains a list with all currently loaded libraries The standard system library offers methods to browse this list and the contents of the loaded libraries based on the information supplied in the registration part of their implementation files 4 2 8 Requirements This level of customization has a medium level of difficulty Nevertheless it requires a good conceptual knowledge of the domain for which the library is intended Therefore it is suitable for more advanced users namely for those who intend to extend the system with domain specific Tcl system libraries Technische Universiteit Eindhoven 23 Version 0 1 31 10 2003 4 3 Kernel Layer 4 3 1 Purpose At this layer very general customization actions can be performed These actions are written as comp
40. nction to handle multiline text ended by n s Make an example to show this via a Tcl sweep cb HIGH 004 Build a few standard node edge glyphs and possibly other Tcl based settings into a domain package This is simply a Tcl file that could be automatically sourced before a given RSF domain is loaded Sourcing another file lets one easily change all appearances in a given app WITHOUT re running editing the app Such a domain package would contain e g node and edge mappers drawing something meaningful for all types in the domain model some other global settings layout mapper viewer HIGH 005 Expose NeatoLayoutOp get setCompact in Tcl API amp GUI HIGH 006 Finish the updating of the Viewer Panel menu Options 2D render checkbox It works ok but its state doesn t reflect the core data when we change the viewer The problem is that I don t know how to set the state of a checkbox entry in a Tcl menu HIGH 007 ode the UNIX equivalent of the new SoUIExaminerViewer new options e g user buttons etc Test newest version under UNIX please HIGH 008 LayoutOp layout is not fully correct Pinned nodes positions are restored but what do we do with edge pinning This is important e g in case edges are layed out separately We should probably automatically restore all edges connected to pinned nodes too HIGH 009 Make the Glyphs GUI also an observer it has to u
41. ns of the above as follows Under MS Windows two options are possible The first is to use the original Open Inventor source code get from www studierstube ac at together with GLUT The second is to use the Inentor clone called Coin3D The first option won t give more than basic 3D rendering in GLUT windows no manipulators viewers etc The second option is an almost complete API level compatible replacement of the original SGI Inventor distribution We chose for the second So far Coin3D s functionality API seems to be 100 compatible with the original SGI Inventor distribution A noteworthy exception is that the windowing system classes called SoXt in the UNIX IRIX distribution Technische Universiteit Eindhoven 7 Version 0 1 31 10 2003 become SoWin in the Ms Windows distribution This change has been encapsulated in the SVF installation so it should be transparent to the end user installing the system However this explains the following aspects of the installation Coin3D www coin3d org needs 2 software sub packages the Coin3D core and the SoWin Windows bindings Both packages can be installed as headers DLL LIB Windows binaries using the self extractors Very simple They just make a common directory with everything In order to build Inventor apps using Coin3D a number of guidelines are to be followed The source code stays the same except e SoXt stuff gets translated to SoWin stuff Applies for C class names as wel
42. pdate e g after a reset Take care so far it has no global refresh Also take care that its destroy event should remove the observer as the other GUIs do HIGH 010 Maybe a more efficient GUI policy would be to keep all currently separate GUI windows as panels in a Tab window This will reduce the chaos of multiple randomly stacked windows on the screen HIGH 011 Add an option to the IVBasicNode EdgeMappers to set a color for ALL nodes edges just a simple color node inserted before the subgraphs for nodes and edges Expose this option in the GUI Then investigate how easy is to parametrize node edge color in the basic mappers by something else e g an attribute plane This would make these mappers more functional HIGH 012 Now that we removed the delNode delEdge from Observer deleting a Node Edge triggers a full update of an Observer We could speed this up by adding a set of reasons with the AttrSet touch Caller could specify WHY he touches the object LOW Technische Universiteit Eindhoven 33 Version 0 1 31 10 2003 inquiring in the Observer s update for the reason If the reason is e g ONLY DEL_NODE or so then a lighter update could be triggered that would check which node s are deleted i e are in Observer but NOT in Selection and then do a delNode on them in Observer However I don t yet know whether this is really going to give a visible perfo
43. rmance improvement 013 Make reader for dot format May be complex since the dot format is quite complex See GV1 8 documentation LOW 014 Add comprehensive error msgs to the Tcl wrappers arg result checking LOW 015 Setting a DomainModel into the GraphManager simply deletes the previously set DomainModel if any was there Do we want this LOW 016 REMARK The program creates attrs on its own This may easily conflict with attr names created by the domain model For example the pos attrs created by the layout tools or the name attrs created by the file readers We should devise a scheme that introduces new attr names without intruding over the names declared by the eventual domain models Underscore prefixed names maybe LOW 017 MAYBE add a tool to scale highlight sel in a viewer in the same way we translate it now LOW 018 MAYBE when layout with imposed bbox done pinned nodes may remain pinned RELATIVE to the bbox which means that absolutely they may move remain pinned ABSOLUTELY which means that their relative position in the bbox may change So far I chose for the 1st option I m not sure whether this is the best The 2nd could be done too simply adapt the code in LayoutOp layout LOW Technische Universiteit Eindhoven 34
44. tallation Next edit this file and add the line package require Tix 8 0 instead of the exec tixwish line at the top That s because there s actually no tixwish shell coming with the Tix distribution Next rename the file to have the tcl extension and then run it Visual C Runtime Libraries Since the software is developed with Visual C it needs a few Visual C DLLs at runtime msvert dll msvcrtd dll These DLLs must be copied in the standard Windows system directory e g c winnt system32 for a Windows NT machine Alternatively they can be copied on the same path as the executable of the SVF SoftViz tool itself See the README INSTALL file in the package s main directory Basically this amounts to configuring some paths if necessary in the TCL init tcl script Technische Universiteit Eindhoven 9 Version 0 1 31 10 2003 3 1 1 SoftViz Tool File Structure The SoftViz Tool is deployed as source code under Microsoft Windows as a Visual C project and under UNIX Linux IRIX The file structure of the source code is identical for both distributions Nevertheless while building the application new directories may be used In this subsection we give a short description of the file structure part that is invariant across distributions see Figure 3 and forms the backbone of the source code of the application SoftViz Folder ET Source code GRAPH ED EE 2 Modified third party code R
45. tion sl Selection s2 Selection Result Applies the binary operation op on sl and s2 and puts the resulting selection in result e g reunion intersection LAYOUT commands pr lay char selection name char pos attr attributes pr lay nested char selection name char pos attr traverse name val Performs a layout attribute editing on a certain selection EDITING commands lt Node gt pr get node char selection name id int idx gt Returns the node with the id idx from the selection selection name lt Node gt pr get node char selection name attr lt char attribute name value Returns the node with the attribute attribute name settoa certain value from the selection selection name pr node options various operations for editing the attributes of a node Remark similar operations exist for edges VIEWER commands Technische Universiteit Eindhoven 3l Version 0 1 31 10 2003 pr_view_new lt char view_name gt lt char sel_name gt lt char pos_attr gt Creates a new viewer that renders the nodes of the selection se1_name using the layout attributes from the pos_attr GLYPH DRAWING commands pr make cube color int r gt int g gt int b gt Draws a cube with the specified color components pr make sphere color int r int g int b gt Draws a sphere with the specified
46. to the same node or edge Technische Universiteit Eindhoven 11 Version 0 1 31 10 2003 instance Among other aspects this allows an efficient selection management one can quickly create hundreds of selections dynamically in the SVF Scene Graphs Scene graphs are the visual representation of graph data in the SVF So far we talked about nodes edges and selections However these objects are not directly drawn or visualized in any way in the SVF The framework uses the 3D display and interaction toolkit Open Inventor to represent data visually see Section 2 The visual representation of a subgraph in an Inventor window is called a scene graph following Inventor s own terminology Consequently to display something in the SVF one needs to a select what is to be seen from the complete data and b create a scene graph from the selection More on scene graphs and displaying data in SectionXXX 3 2 2 Operations Operations describe how the data representations presented in the previous section are created manipulated and destroyed Any action in the SVF that reads or writes data in any way is an operation One can see SVF s working as being the application of a set of operations in some sequence on its data To describe an operation we must describe the way it accesses its data Operations have conceptually inputs and outputs Inputs describe the way operations read their data Outputs describe what the operations change in the
47. tomized with various component libraries that describe various glyph construction interaction and layout mechanisms Consequently a scenario must reference which component libraries have been used in a given session so that upon reloading it the Technische Universiteit Eindhoven 16 The Software Visualization Framework User Manual user gets the same system behavior For this the scenario contains references to the Tcl files describing the component libraries More on component libraries in Section 4 2 Besides reusable Tcl components coming in the form of component libraries a scenario might contain some specific Tcl scripts as well For example a user has written some specific Tcl procedure for a given scenario but hasn t included it in any component library In this case the scenario will save the full source text of the Tcl procedure in line in the scenario file The reason hereof is to be able to restore the Tcl procedure upon resuming the scenario The overall goal of the above scenario structure is to make reusable as many elements of a scenario as possible We do this by referencing the elements in the scenario file rather than including them inline Reusable elements are graph data component libraries and selection files These elements are referred by their corresponding file names in a scenario file If thus some user wants to apply a given scenario on another data file than the one the scenario was built upon he should onl
48. y replace the reference to the original data file in the scenario with a reference to the new data file Similarly new component libraries can be automatically used by a scenario instead of the ones it was built for as long as they have the same name and provide the same Tcl API This mechanism allows for example visualizing a given dataset in different ways just by replacing the graphics related component libraries in a given scenario The selection files are a particular case They always refer to i e select a particular data file so they cannot be in general reused in other scenarios than the ones they were created for However they are stored as separate files as explained in order to keep the scenario file concise 3 3 2 Scenario Saving and Restoring The SVF offers a mechanism by which visualization scenarios may be saved in a persistent storage and restored at a later moment Figure 7 depicts this mechanism in detail At the base of each scenario there is a file containing information about the structure of the system to visualize in the form of an attributed graph see also Section 3 2 More visualization scenarios may be based on the same attributed graph and the host graph file never modifies maak Visualizatiort Selections dat uaiestign M scenario New attributes rsf visualization 1 Settings viewers callbacks scripts etc Ns Graph data in
49. zation Framework User Manual 3 2 Visualization Concepts and Operation Principle In order to understand the way of working with the SVF one should get first a good grasp on the basic data models and operations that form the core functionality of the application In this section we present the way the SVF models relational data 3 2 4 Data Representation Three main concepts build the data representation in the SVF structure attribute selection and scene graphs Structure Structure refers to the way in which information elements are related to each other Briefly put SVF represents data as an attributed graph The nodes are data elements of the users own domain model The edges are domain model relations between nodes The attributes describe specific values the nodes and edges have This data model is fully general i e there are no constraints imposed on the structure or size of the above graph and or its attributes Let us give some examples Network data can be represented in the SVF as a graph in which nodes model data sending and receiving entities e g computers and edges data connections between computers Attributes model various aspects of the computers and or connections e g URLs speed load and so on Another example is software architectures Architectural data can be represented in the SVF as a graph in which nodes are software entities files packages components functions classes and so on Edges represent so
Download Pdf Manuals
Related Search
Related Contents
Beko BK 8182 Instruction Manual 使用上の注意のお願い Samsung SM-E700M Manual de Usuario Pentax K-5 + 18-55 f/3.5-5.6 + 50-200mm f/4-5.6 Quick Draw Electronics Competition Controller User Manual Model ET-7000/PET-7000 Series User Manual Copyright © All rights reserved.
Failed to retrieve file