****************************************** * Social Networks Visualizer (SocNetV) * ****************************************** ChangeLog: Version 1.2 - Aug 18, 2014 Codename: "Happy times" -------------------------- * Changed conceptualization of importance indices: In general, all indices attempt to measure the visibility, the importance or the "Prominence" of each node. But from now on, following Wasserman & Faust and Knoke & Burt, we now distinguish two types of prominence: Centrality and Prestige. Most Centrality indices were designed for undirected graphs (symmetric), where the relations are non-directional. They can also be calculated to directed relations and digraphs by focusing on "choices made" (or outLinks). For digraphs, where the relations are directional, we introduce a range of Prestige indices which focus on "choices received". These indices measure the nominations or ties to each node from all others (or inLinks). Thus, Prestige indices can only be calculated on directed graphs, and measure the status, rank or popularity of each node. According to the new conceptualization, the "Centralities" menu has been renamed to Centrality & Prestige. Centrality indices can be applied on both graphs and digraphs (measuring outLinks) while Prestige indices can be calculated only on digraphs and they measure inLinks. * New Prestige indices: Degree Prestige, Proximity Prestige and PageRank Prestige. * New "reachability" statistics: Walks (of given length), Total Walks Matrix (for any path length up to g-1), and Reachability Matrix * New Connectedness statistic: Checks whether the graph is connected, weakly connected (digraph) or disconnected. * New "distance" index: Eccentricity e, the maximum farness of the node from all others * Revamped GUI. Toolbox now has two tabs: Controls and Statistics. In Controls, all the essential features are available grouped in Edit (add or remove node/link), Analyse (distances, connectivity, clusterability, prominence indices) and Visualize (by prominence index or dynamic models) boxes.Also renamed Statistics menu to Analysis * New level visualization layouts: By IR Closeness Centrality, Stress Centrality, Eccentricity Centrality, Power Centrality, Information Centrality, Degree Prestige, Proximity Prestige and Pagerank Prestige * New circular visualization layout: By Proximity Prestige * New automagically recreated dataset: Wasserman_Faust_Countries_Trade_Data_Basic_Manufactured_Goods * SocNetV Manual: Updated documentation (added new indices and corrected wording) and added the Manual in Mac OS X .dmg package. * Fixed Bugs: Closeness Centrality in disconnected graphs/digraphs (it did not drop isolates), wrong classes for PC indices, Stress Centrality (wrong maxindex and circular layout in digraphs), not displaying of edge weights, Matrix::product errors, Eccentricity Centrality (wasn't reported as the inverse e), Geodesic Distance (it reported two nodes as connected even if their distance was 0) * Matrix Class: dded new operators in Matrix (+,*), * Dropped Graph Eccentricity as it is known as Eccentricity Centrality * fixed layout and signal/slots in datasetselectdialog.ui * fixed warnings during compile (i.e. unused fileContainsNodeColors etc in loadPajek() Version 1.1 - Aug 2014 Codename: "bugfix hunt" ----------------------- - fixed circular guides boundingRect - fixed weighted graphs inDegree and outDegree centralization calculation - fixed bug in DistanceMatrix for Closeness centrality min and max index - fixed bug in DistanceMatrix std and group Graph and Closeness Centrality - Changed default arrowSize and colors - Added dataset: Knocke_Bureacracies_Information_Exchange_Network (pajek) - nicer createAdjacencyMatrix in Graph to let spaces between weights. - nicer printout of distance and sigmas matrix - Changed minimum size of scene and graphicswidget to remove scrollbars - Enabled SmoothPixmapTransform qpainter render hint by default - Removed obsolete optimization flag from graphicsview - New statistics matrix: NumberOfGeodesics - Updated manual for NumberOfGeodesicsMatrix option - Removed unused variable warnings in createDistanceMatrix Version 1.0 - Feb 2014 Codename: "4 years later" --------------------------- - First version in Qt5 - New Feature: PageRank calculation and layout - New reference item: SRS Documentation by Vagelis Motesnitsalis - Re-introduce GraphViz import menu option - Init "Spring Embedder" tab checkbox to none when user creates new network. Version 0.90 - Oct 12 2010 Codename: "Worka Worka" -------------------------- - New feature: Power Centrality calculation - New feature: Information Centrality (Stephenson & Zelen) calculation - New feature: radial layout according to Power and Information centralities - New feature: filter (enable/disable) orphan nodes - New feature: import two-mode affiliation networks (in sociomatrix format) - New, faster container for GraphicsWidget Nodes based on QHash - More automagically recreated known data sets - Allow really large networks to be loaded without crashing. Still too slowly though. - Nodes are selectable (but not yet editable) in groups - Fixed bug #518219: Certain Pajek files might crash SocNetV - Fided bug #515756: Ctrl+F after a node removal may crash SocNetV - Fixed bug #515758: Random layout crashes SocNetV, if a node is removed - Updated user manual to new version features. - Removed counts of outLinkedNodes, inLinkedNodes and reciprocalLinkedNodes because they were causing too much overhead when loading large networks. The relevant LCDs were also dropped from the UI. Version 0.81 - Jan 28 2010 Codename: "bugfixes" --------------------------- - New feature: automatic recreation of known data sets. - Now, SocNetV can read two kind of lists: a) weighted lists in the format source1 target1 weight1 source2 target2 weight2 source3 target3 weight3 ... b) simple (unweighted) lists source1 target1 target2 target3 target4... source2 target1 target2 target3 target4... source3 target1 target2 target3 target4... - Fixed bug #507818: "Export as pajek, overwrites the graphml file" - Fixed bug #511418: "List loading crashed SocNetV". - Fixed bug #511420: "Edges do not follow nodes in SocNetV development version for Windows" - Fixed bug #470283: "file saving doesn't automatically give the file an extension" Version 0.80 - January 8 2010 Codename: "supersyntages.gr" ---------------------------- - New statistic: Triad Census. - New statistic: clique numbers for each node. - Initial read support for list formatted files. - Read support for comma separated values (csv) formatted sociomatrix files - Much improved Dot format support. - Faster network load times, thanks to control variables. - Added keyboard shortcuts for Centralities - Refactored Import network menu. The user must define what network format is the file at hand. - Fixed bug #416965: Not displaying nodes when loading GraphViz files - Fixed bug #396124: GBC different in Pajek cp. to SocNetV - Fixed bug #415277: network files were not loaded on startup - Fixed bug #379225: side note: GraphML format did not preserve node labels. - Fixed bug #418023: rewiring parameter typo in Graph:createRandomNetSmallWorld. - Fixed bug #420708: on GraphML output files, not transforming special XML characters, like &, to ampersand codes, like & - Fixed bug #418550: Clear selection when clicking on empty canvas. - Fixed bug #504037: Negative Group Closeness Centrality - Fixed bug #504517: double cliques counting in nondirected networks. - Edited .spec to enable proper Fedora package creation. - Changed ProgressBar behaviour: bars appear only if nodes are more than 300 or edges more than 1000. - New feature: the embedded text editor can be used to copy/paste directly network data - Updated user manual. Version 0.70 - June 30 2009 Codename: "Summertime" ---------------------------- - First web Crawler implementation. Use Shift+C to test it. Doesn't support frames yet... - Multiple nodes can be selected with mouse. Press and hold left mouse button somewhere on the canvas, then move mouse to test it. - Fixed bug #379204 which was crashing SocNetV when creating small worlds above 201 nodes - Fixed bug #381096 crashing SocNetV in Edge Filtering when an edge was reciprocal. - Fixed bug #381094 weight changes not recorded correctly in symmetric edges. - To speed things up, the on-the-fly Clustering Coef. and Average Distance calculation was removed from random network creation routines. - Random Layout is back! - Speed improvement in FindNode method. - Progress Bars now appear whenever a distance-related calculation is happening, so that the user knows what is happening and how long it will take. - Tom Tryfonidis prepared Arch PKGBUILDs for SocNetV. You can install it from AUR. - Reverted to older version name scheme. All versions: 0.XX Version 0.6.0 - May 27 2009 Codename: "Spring" ---------------------------- - GraphML becomes our native load/save format ( partially support for yFiles) - New filter edges by their weights functionality. - The background can be a custom image (via menu View > Background Image) - New rounded rectangle shape for nodes. - Nodenumbers can be displayed inside nodes, once again. Sorry, labels are too difficult to show inside nodes :( - Fresh application iconset in shades of gold and gray. - New version name scheme. Main versions: 0.x Bugfixes: 0.x.y - Project admin, code, bug tracking etc moved to Launchpad/Bazaar. Report bugs to Launchpad. - SocNetV joins the QtDesktop project (http://code.google.com/p/qtdesktop/) Version 0.51 - Feb 16 2009 Codename: "Maria" ------------------------------ - Fixed serious bug in DistanceMatrix method, affecting centralities and layout. - Fixed debug messages output default status to false, so that SocNetV is more responsive. - Officially added DL (Data Language) file format support. This is UCINETs FULMATRIX mode. Version 0.50 - Feb 13 2009 Codename: "Recession (or the ballad of the deranged Greek statesmen)" ------------------------------ -'Small World' random network creation (Watts and Strogatz model). -Clustering Coefficient calculation. -Average Graph Distance (shortest path length) calculation. -Nodes can be linked to themselves with nice bezier curves. -Negative and decimal edge weights are now fully supported. -Dashed lines are nicely used to signify negative edge weights. -Export current network to PDF with one click. -Number and label colors are editable. -Fixed number and label font size problem. -Fixed PNG and BMP export regression. -Fixed Printing regression. Printing is OK now. -New program logo and icon. -Icon for Windows executable. -Code cleanup (no more compile warnings) and minor memory optimisations. -User messages/warnings and menu icons update. Version 0.49 - Jan 13 2009 Codename: "Alexis Grigoropoulos (R.I.P.)" ------------------------------ -Weight numbers can be displayed over links. -DL network format initial support. -Floating point edge weights are now supported... -Bug fix: Show correct new node number instead of %i -Bug fix: Zoom while rotate works (thanks Andre!). -Bug fix: No longer BFS crashes. SocNetV is more reliable. -Bug fix: Changed shortcut of OutDegree to Ctrl+1. -Added GraphML loading Version 0.48 - Sep 30 2008 Codename: "Road to nowhere?" ------------------------------ --Erdos-Renyi random network creation. --Removing symmetric edges, now asks what direction to remove. --New layout method: node sizes according to their indegrees. --No node limit. Load any network you want (make a coffee while waiting :)). --loadPajek() recognizes Arcslists and Matrix edges formats. --Edges are being drawed once (faster loading and node movement). --Graph API simplification and "standardization" --New LCD widget displaying network density and some improvements to the dock. --In-file declared node colors and shapes are used as they should. --Fixed bugs in removeNode methods. --Lots of bugfixes in loadPajek() method. --Documentation update --Progress Bars (F10) appear when creating random nets > 300 nodes. --RPM repository for openSUSE at http://download.opensuse.org/repositories/home:/oxy86/openSUSE_11.0 --SocNetV has a new, modern logo. It still resembles a snail though. ;) Version 0.47 - Sep 12 2008 Codename: "En leukw" ------------------------------ --Fixed bug in adjacency matrix loading/saving. --Edges are drawed once, even the reciprocal ones. This makes network loading faster... --Cosmetic changes in canvas (labels stay above edges, etc). --Fixed another bug in loadPajek(). Version 0.46 - Sep 11 2008 Codename: "Autumn leaves" ------------------------------ --Zoom in and out via mouse wheel work nice. --Nodes (triangles, diamonds) resize as they should. --Node shapes are now saved to Pajek files. --New layout method displaying node sizes according to their outdegrees. --Code cleanup and bugfixes in loading Pajek files. Version 0.45 - Aug 30 2008 Codename: "Changes (I' going through)" ------------------------------ - GraphML initial support. - New man page and updated online documentation. - HtmlViewer renders online help with the help of QtWebKit (openSUSE: libQtWebKit-devel) - New widget for network rotation. - New widget for zooming replaces the old one. - Nodes may have 4 different shapes: circles, diamonds, triangles, boxes and ellipses are supported. - There was a bug in Qt 4.3 QGraphicsView causing redraw delays. Is fixed in Qt 4.4 :) - Cosmetic changes, i.e. new icons, new layout for the left dock. - Code clean-up in MainWindows Class and Matrix. Deleted obsolete members and functions such as nodeExists(), mousePosGW(), Dijkstra, etc. - Fixed bugs on loading Pajek networks and layout algorithm. Version 0.44 - May 1st 2008 Codename: "Strike" ------------------------------ - Changed license to GPL3 - Complete code rewrite, build on Qt 4.x and Graphics View framework. - New, improved graphical user interface (GUI) with docks. - Splitted GUI from algorithms. - Threaded loading of networks. This leaves the GUI responsive when reading a file. - New improved Shortest Path algorithm (BFS/dijkstra). - Centralities are calculated much faster. - Real-time, on-demand, reallocation of nodes (Spring Embedder) which works :). - Layout in circles and levels by centrality. - Simple zoom in/out on the networks. - Better graphics and antialiasing (disabled - enable by pressing F8). - New centrality index: Eccentricity. Version 0.43 - September, 2006 Codename: "Tux" ------------------------------- - NEW LAYOUT: Spring Embedder algorithm - FIX: Actor Numbers are once again displayed outside actors' shapes by default. Version 0.42 - late June, 2006 Codename: "Amused to death" ------------------------------- - NEW: Actor Numbers are displayed inside actors' shapes by default. - NEW: Actors can be added just by double-clicking on the canvas - UPDATE: Help files - UPDATE: Some Options menu items were reformed. - FIX: "View Network File" bug. - FIX: "Diameter error in weighted networks" bug. - FIX: "Segmentation fault in degreeCentrality after remove/add new actor" bug. Version 0.41 - March 08, 2006 Codename: "Conservatification :-)" ----------------------------- - NEW: Actors may have more shapes: boxes, triangles, circles, ellipses, diamonds, etc. - NEW: Can import and export pajek nets with shapes. - FIX: In-Degree/Out-Degree Centralities were implemented. - UPDATE: Dot import improved. - ATTEMPT: Dot export implemented partially. - List import implemented partially. - FIX: in pow(double, double) fixed Version 0.40 - Feb, 18 2006 Codename: "A Greek Big Brother" ------------------------------- - Stress Centrality was implemented. - Fixed bugs in centralities calculation - Simplified layout of centralities' reports. - Fixed circular layout by degree, closeness and betweeness. - Circular layout by centralities shows helpfull red-dashed circles. Version 0.39 - Feb, 05 2006 Codename: "Dazed and Confused" ------------------------------ - Fixed bug on betweeness centrality. - Betweeness and closeness centralities work with undirected graphs. - Graph Centrality was implemented. - Version 0.38 - Feb 2006 Codename: "Back to Metropolis - Back to the village" --------------------------------------------------- - Code has been rewriten from scratch. - Most menus have been redesigned. - Faster loading of large networks (>100 actors). - New network format can be imported (DOT from graphviz). - Sociomatrix viewer has its own nice wigdet. - Support for the X color database (found in rgb.txt). - Window resize causes a nice reposition of all actors and links, maintaining proportion (I think). - Busy cursor when loading networks. - The user may change even the size of the actor numbers and labels. - Dijkstra's algorithm for weighted networks has been implemented. It is fast enough for networks up to 150 actors. - Breadth-First algorithm for non-weighted nets has been implemented ? - Degree Centrality and Layout take weights into account. The user may define negative weights as well. - Negative link weights are displayed as dashed lines. - Weight numbers can be displayed nicely above links. - Can transform all arcs to links with one click. - Circular lattice network generation. - Random same degree network generation. - Quick Tips by pressing F2. - Helpful tips displayed on StatusBar for every meny option. Also a new What's This menu item may become handy. - Bug fixes ("#include math.h" was the most silly of them). - SOME FEATURES FROM PREVIOUS VERSIONS (i.e. COMPONENTS ANALYSIS) WERE DROPPED. VERSION 0.37 (codename "Evros Iceman - You're in the army now...") ------------ - Now uniform random network is really a random process. - Bug fixes. - Changing node label is now an "on the fly" process. - Filtering edges by their weights is now supported. - Layout by centrality is now more comprehensive: A background circle is drawn for every centrality value. - Arcs/Edges calculation is now correct. - Directed networks/centralities/layout were flawed. Still it is... VERSION 0.36 (codename "fine") ------------ - Bug Fixes - Acceleration Keys work fine. - Messages are multilingual now. Only Spanish support for now. - Context Menu appears when right-clicking on canvas. - Layouts by closeness and betweeness centralities now work fine. - Exporting networks to BMP and PNG format is now supported. VERSION 0.35 (Jan 22 2005) ------------ - Bug fixes. - d-regular network support - Multilingual support. - Spanish menu support. Thanks to David De Ugarte. Set locale "es" et voila! Version 0.34 (JAN 14 2005) ------------ - Countless bug fixes, ie: Blank name when blank network is created. Loading a network file after Creating New Network had undesirable effectes. ASSERT: "i < ..." when nodes <-> edges When removing a link it keeps on reporting it. - Random network creation - Row index form (beta) - Betweeness and closeness centralities now work fine. version 0.33 (22 May 2004) ------------------------- - Countless bug fixes. - Betweeness centrality. - New layouts, by centrality (did not work!). - Edges' weights can be changed by right-clicking on the edge and selecting the relevant command. - Matrix algebra: inverse, power, determinant, etc. version 0.32 (15 May 2004) --------------------------- - Countless Bug Fixes. - With a click on the "display database" menu option, you can view (and print if you like) the complete Database. - New Transformation: edges <-> nodes - Re-reading Wasserman and Faust is always good. Now reachability works well. Distance is really ok. Centralities (informational, etc) are implemented, too. version 0.31 (May 2004) ------------------------ - Countless Bug Fixes. - Clicking on a link causes the StatusBar to display info about the specific link. - Thanks to QT examples, a simple Help viewer has been incorporated. version 0.3 (March 2004) ----------- - Somewhat improved memory mngmt; at least, there are no more segmentation faults :) - Changed internal representation of links: Every link has a source A and a target actor B. The source actor A is 'OutLinked' with the target B, while the latter is 'InLinked' from the source actor A. This relationship is denoted as A->B. If the target actor B of a link (A->B) is also OutLinked with the source, i.e. B->A, then this (two-way) link is an edge. This relationship is denoted as A<->B. Else the (one-way) link is just an arc. Thus, this representation is compatible to PAJEK's arcs and edges (or at least what I assume that PAJEK does). - SocNetV can write adjacency matrix ("sociomatrix") to a text file. - SocNetV can write PAJEK-formatted network in a file. It saves the on-screen node coordinates as well. - Some interesting node/actor data are displayed in the Status Bar. Also, tooltips w/ coordinates are known to emerge when you leave the mouse pointer on the canvas. - Right-clicking on a node causes a node-specific menu to popup. - The statistics menu tries to be more relevant to its name! Now it is populated by : density, distance, reachability, diameter, centralities. - The user can remove any node by the appropriate (context) menu command. Edges can also be removed using the relevant menu command. There is no mouse interactivity with the edges at the moment. (April 2004) - Network components (maximal linked subnets) can be calculated. It can also paint the nodes of each component with the same color. version 0.2 ----------- - Somewhat improved mouse interactivity with vertices. - Now SocNetV can read even adjacency-matrix network files :-) - New features: network layout options, rudimentary descr. statistics, etc - New menu (still inactive): Transform Menu version 0.1 ----------- - First Version of SocNetV (Feb 2004, in the end of an inexpectably heavy winter). Initially i planned to name it something like 'nwd' or snail (social network analysis in Linux), although I cannot even remember what 'nwd' was supposed to meant! - SocNetV should normally read plain PAJEK-formatted network files. At this point, only vertices and edges are supported. Also you can read but you cannot write :( - Efforts to add mouse interactivity to vertices. - Separate text editor to view and tickle with the text files. - SocNetV is unable to directly save network files, although this can be done using the esoteric text editor. x