<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://visone.ethz.ch/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lerner</id>
	<title>visone manual - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://visone.ethz.ch/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lerner"/>
	<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php/Special:Contributions/Lerner"/>
	<updated>2026-10-15T05:52:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=User:Lerner&amp;diff=1686</id>
		<title>User:Lerner</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=User:Lerner&amp;diff=1686"/>
		<updated>2019-03-26T14:33:39Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;J&amp;amp;uuml;rgen Lerner&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Contact: [mailto:juergen.lerner@gmail.com juergen.lerner@gmail.com]&lt;br /&gt;
&lt;br /&gt;
[http://algo.uni-konstanz.de/team/lerner/ http://algo.uni-konstanz.de/team/lerner/]&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=User:Lerner&amp;diff=1685</id>
		<title>User:Lerner</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=User:Lerner&amp;diff=1685"/>
		<updated>2019-03-26T14:33:02Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;J&amp;amp;uuml;rgen Lerner&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can reach me at [mailto:juergen.lerner@gmail.com juergen.lerner@gmail.com].&lt;br /&gt;
&lt;br /&gt;
My homepage [http://algo.uni-konstanz.de/team/lerner/ http://algo.uni-konstanz.de/team/lerner/].&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=EgoNet2GraphML_(software)&amp;diff=1684</id>
		<title>EgoNet2GraphML (software)</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=EgoNet2GraphML_(software)&amp;diff=1684"/>
		<updated>2019-03-26T14:32:29Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://sourceforge.net/projects/egonet/ EgoNet] is a software to conduct interviews in which the [[Personal_network|personal networks]] of respondents are collected. &#039;&#039;&#039;EgoNet2GraphML&#039;&#039;&#039; can (1) convert EgoNet interviews into GraphML files (that can be opened with visone) and (2) cluster, aggregate, and visualize collections of personal networks using the methodology proposed in: Ulrik Brandes, Juergen Lerner, Miranda J. Lubbers, Chris McCarty, and Jose Luis Molina &#039;&#039;&#039;&amp;quot;Visual Statistics for Collections of Clustered Graphs&amp;quot;&#039;&#039;&#039;. &#039;&#039;Proc. IEEE Pacific Visualization Symp. (PacificVis&#039;08)&#039;&#039;, 2008 ([http://www.inf.uni-konstanz.de/algo/publications/bllmm-vsccg-08.pdf &#039;&#039;link to pdf&#039;&#039;]).&lt;br /&gt;
&lt;br /&gt;
See the [[Personal_networks_(tutorial)|tutorial on personal networks]] to learn how to use this software. &#039;&#039;&#039;To download EgoNet2GraphML go to [http://www.inf.uni-konstanz.de/algo/software/egonet2graphml/ the EgoNet2GraphML website]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
EgoNet2GraphML can open one or more interview files that have been filled out according to the same questionnaire (&amp;lt;code&amp;gt;.ego&amp;lt;/code&amp;gt;-file). Then it can export these personal networks to [[GraphML]] files either on the individual level or after an attribute-based clustering. &lt;br /&gt;
* When exporting networks on the individual level, the resulting network has a node for each alter and it stores the ego attributes as network level attributes and the alter attributes as node attributes. Typically, the respondent has to evaluate the relation between every undirected pair of alters; in this case the resulting network is complete and the alter-alter responses are encoded in link attributes. &lt;br /&gt;
* When exporting networks on the class level the user first have to specify how the alters should be partitioned based on alter attributes. Then the class-level networks are exported to GraphML files containing a node for each class and a link for each undirected pair of classes. Summary statistics for the classes (such as number of actors in the class or number of links connecting actors in the same class) are stored as node attributes, statistics for pairs of classes are stored as link attributes. In addition, when exporting networks on the class level EgoNet2GraphML generates one GraphML file (&amp;lt;code&amp;gt;Average_clustered.graphml&amp;lt;/code&amp;gt;) that shows the average (tendency and dispersion) over the whole collection of personal networks, as defined in Brandes et al. (2008).&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=WikiEvent_(software)&amp;diff=1683</id>
		<title>WikiEvent (software)</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=WikiEvent_(software)&amp;diff=1683"/>
		<updated>2019-01-17T15:44:47Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WikiEvent_(software)|&#039;&#039;&#039;WikiEvent&#039;&#039;&#039;]] is a small graphical java software with which the &#039;&#039;&#039;&#039;&#039;edit network&#039;&#039;&#039;&#039;&#039; associated with the history of [http://www.wikipedia.org Wikipedia] pages can be computed.&lt;br /&gt;
&lt;br /&gt;
== Download and licensing information ==&lt;br /&gt;
&lt;br /&gt;
See the WikiEvent webpage [http://algo.uni-konstanz.de/software/wikievent/ http://algo.uni-konstanz.de/software/wikievent/].&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
See the tutorial on [[Wikipedia_edit_networks_(tutorial)|Wikipedia edit networks]].&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Wikipedia_edit_networks_(tutorial)&amp;diff=1682</id>
		<title>Wikipedia edit networks (tutorial)</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Wikipedia_edit_networks_(tutorial)&amp;diff=1682"/>
		<updated>2018-12-18T09:24:39Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Statistical modeling of edit event networks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Wikipedia_vis_example.png|200px|thumb]]&lt;br /&gt;
The &#039;&#039;&#039;&#039;&#039;edit network&#039;&#039;&#039;&#039;&#039; associated with the history of [http://www.wikipedia.org Wikipedia] pages is a network whose nodes are the page(s) and all contributing users and whose edges encode time-stamped, typed, and weighted interaction events (&#039;&#039;&#039;&#039;&#039;edit events&#039;&#039;&#039;&#039;&#039;) between users and pages and between users and users. Specifically, edit events encode the exact time when an edit has been done along with one or several of the following types of edit interaction: &lt;br /&gt;
* the amount of new text that a user &#039;&#039;&#039;adds&#039;&#039;&#039; to a page; &lt;br /&gt;
* the amount of text that a user &#039;&#039;&#039;deletes&#039;&#039;&#039; (along with the other user/s that has/have previously added this text);&lt;br /&gt;
* the amount of previously deleted text that a user &#039;&#039;&#039;restores&#039;&#039;&#039; (along with the users that previously deleted and the ones that originally added the text). &lt;br /&gt;
&lt;br /&gt;
Together these edit events form a highly dynamic network revealing the emergent collaboration structure among contributing users. For instance, it can be derived &lt;br /&gt;
* who are the users that contributed most of the text;&lt;br /&gt;
* what are the implicit &#039;&#039;&#039;roles&#039;&#039;&#039; of users (e.g., contributors of new content, vandalism fighters, watchdogs);&lt;br /&gt;
* whether there are &#039;&#039;&#039;opinion groups&#039;&#039;&#039;, i.e., groups of users that mutually fight against each others edits.&lt;br /&gt;
&lt;br /&gt;
This [[Tutorials|tutorial]] is a practically oriented &amp;quot;how-to&amp;quot;-guide giving an example based introduction to the computation, analysis, and visualization of Wikipedia edit networks. More background can be found in the papers cited in the [[Wikipedia_edit_networks_(tutorial)#References|references]]. To follow the steps outlined here (or to do a similar study) you should download [[WikiEvent_(software)|&#039;&#039;&#039;WikiEvent&#039;&#039;&#039;]] - a small graphical java software with which Wikipedia edit networks can be computed.&lt;br /&gt;
&lt;br /&gt;
Please address questions and comments about this tutorial to me ([[User:Lerner|J&amp;amp;uuml;rgen Lerner]]).&lt;br /&gt;
&lt;br /&gt;
== How to download the edit history? ==&lt;br /&gt;
&lt;br /&gt;
Wikipedia not only provides access to the current version of each page but also to all of its previous versions. To view the page history in your browser you can just click on the &#039;&#039;&#039;history&#039;&#039;&#039; link on top of each page and browse through the versions. However, for automatic extraction of edit events we need to download the complete history in a more structured format. To do this there are various possibilities that are appropriate in different scenarios (and dependent on your computational resources and internet bandwidth).&lt;br /&gt;
&lt;br /&gt;
To get the history of &#039;&#039;&#039;all&#039;&#039;&#039; pages you can go to the [http://dumps.wikimedia.org/backup-index.html Wikimedia database dumps], select the wiki of interest (for instance, &#039;&#039;&#039;enwiki&#039;&#039;&#039; for the English-language Wikipedia), and download all files linked under the headline &#039;&#039;All pages with complete edit history&#039;&#039;. The complete database is extremely large (several [http://en.wikipedia.org/wiki/Terabyte terabytes] for the English-language Wikipedia) and probably cannot be managed with an ordinary desktop computer.&lt;br /&gt;
&lt;br /&gt;
Another possibility to get the complete history of a Wikipedia page (or of a small set of pages) is to use the wiki&#039;s [http://en.wikipedia.org/wiki/Special:Export Export page]. The preceeding link is for the English-language Wikipedia - for other languages just change the language identifier &#039;&#039;en&#039;&#039; in the URL to, for instance, &#039;&#039;de&#039;&#039; or &#039;&#039;fr&#039;&#039; or &#039;&#039;es&#039;&#039;, etc. (Actually, this visone wiki has, as any other MediaWiki, also an export page available at [[Special:Export]]; there you could download the edit history of visone manual pages - which are definitively much shorter than those from Wikipedia.)&lt;br /&gt;
&lt;br /&gt;
[[File:Wikipedia_export_pages.png|400px]]&lt;br /&gt;
&lt;br /&gt;
For instance, to download the history of the page [http://en.wikipedia.org/wiki/Social_network_analysis &#039;&#039;&#039;Social network analysis&#039;&#039;&#039;] make settings as in the screenshot above and click on the &#039;&#039;&#039;Export&#039;&#039;&#039; button. However, as it is noted on the page, exporting is limited to 1000 revisions and the example page (Social network analysis) has already more than 2700 revisions. In principle it is possible to download the next 1000 revisions by specifying an appropriate offset (as explained on the [http://www.mediawiki.org/wiki/Manual:Parameters_to_Special:Export manual page for Special:Export]) and then pasting the files together. However, since this is rather tedious the software [[WikiEvent_(software)|WikiEvent]] offers a possibility to do this automatically. (Internally WikiEvent proceeds exactly as described above by retrieving revisions in chunks of 1000 and appending these to a single output file.)&lt;br /&gt;
&lt;br /&gt;
To download a page history with [[WikiEvent_(software)|WikiEvent]] you start the program (download it from [http://www.inf.uni-konstanz.de/algo/software/wikievent/ http://www.inf.uni-konstanz.de/algo/software/wikievent/] and execute by double-clicking) and click on the entry &#039;&#039;&#039;download history&#039;&#039;&#039; in the &#039;&#039;&#039;net&#039;&#039;&#039; menu. You have to specify the language of the Wikipedia (for instance, &#039;&#039;&#039;en&#039;&#039;&#039; for English, &#039;&#039;&#039;de&#039;&#039;&#039; for German, &#039;&#039;&#039;fr&#039;&#039;&#039; for French, etc), the title of the page to download and a directory on your computer in which the file should be saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Wikipedia_lang_code.png]] [[File:Wikipedia_page_title.png]] [[File:Wikipedia_download_sna.png]] &lt;br /&gt;
&lt;br /&gt;
The program is actually very silent - for instance, you don&#039;t see a progres bar - until the download is complete. The time it takes to download depends on many factors, among them the size of the page history (which might be several [http://en.wikipedia.org/wiki/Gigabyte gigabytes] for some popular pages!) and the bandwidth of your internet connection. At the end you see the number of downloaded revisions in the message area of WikiEvent. &lt;br /&gt;
&lt;br /&gt;
For information: the size of the history file for the page &#039;&#039;Social network analysis&#039;&#039; is about 84 [http://en.wikipedia.org/wiki/Megabyte Megabytes] on May 04, 2015 (obviously growing). The history is saved in a file &#039;&#039;&#039;Social_network_analysis.xml&#039;&#039;&#039; in the directory that you have chosen. If you are interested, the XML format is described in the page [http://www.mediawiki.org/wiki/Help:Export http://www.mediawiki.org/wiki/Help:Export] - but you never have to read these files since they are automatically processed as described below.&lt;br /&gt;
&lt;br /&gt;
== Computing the edit network ==&lt;br /&gt;
&lt;br /&gt;
To compute the edit events from a Wikipedia history file select the entry &#039;&#039;&#039;extract edit events&#039;&#039;&#039; in the &#039;&#039;&#039;page&#039;&#039;&#039;-menu of WikiEvent. You have to specify one or more history file(s) and a directory to save the files with the edit events. (These output files have the same names as the input files - just with the ending &#039;&#039;&#039;.xml&#039;&#039;&#039; replaced by &#039;&#039;&#039;.csv&#039;&#039;&#039;.)&lt;br /&gt;
 &lt;br /&gt;
[[File:Wikipedia_extract_edit_events.png]]&lt;br /&gt;
&lt;br /&gt;
If we compute the edit events from the history of the page &#039;&#039;Social network analysis&#039;&#039;, then the first few lines of the edit event file look like this:&lt;br /&gt;
  PageTitle;RevisionID;Time(calendar);Time(milliseconds);InteractionType;WordCount;ActiveUser;Target&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;1711088;2003-09-23T21:08:52Z;1064344132000;added;196;&amp;quot;142.177.104.40&amp;quot;;&amp;quot;Social network analysis&amp;quot;&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;2002109;2003-11-11T06:13:44Z;1068527624000;added;10;&amp;quot;63.228.105.175&amp;quot;;&amp;quot;Social network analysis&amp;quot;&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;2002109;2003-11-11T06:13:44Z;1068527624000;deleted;192;&amp;quot;63.228.105.175&amp;quot;;&amp;quot;142.177.104.40&amp;quot;&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;2036847;2003-12-19T22:42:43Z;1071870163000;added;54;&amp;quot;Davodd&amp;quot;;&amp;quot;Social network analysis&amp;quot;&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;2036847;2003-12-19T22:42:43Z;1071870163000;deleted;7;&amp;quot;Davodd&amp;quot;;&amp;quot;63.228.105.175&amp;quot;&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;2210638;2003-12-24T13:29:11Z;1072268951000;added;1;&amp;quot;210.49.82.219&amp;quot;;&amp;quot;Social network analysis&amp;quot;&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;2210638;2003-12-24T13:29:11Z;1072268951000;deleted;1;&amp;quot;210.49.82.219&amp;quot;;&amp;quot;Davodd&amp;quot;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
The file encodes a table with entries separated by semicolons (&#039;&#039;&#039;;&#039;&#039;&#039;). The columns from left to right encode&lt;br /&gt;
* The &#039;&#039;&#039;title&#039;&#039;&#039; of the page (since a history file can contain the history of several pages the title-field can actually vary.).&lt;br /&gt;
* The &#039;&#039;&#039;revision id&#039;&#039;&#039; which is a number uniquely identifying a revision in Wikipedia (not just in one page). A single edit can produce more than just one line in the output file (we say more on this below); the revision id makes it possible to recognize which lines belong to the same edit.&lt;br /&gt;
* The &#039;&#039;&#039;time&#039;&#039;&#039; of the edit given as a date/time-string. For instance the first edit happend on September 23, 2003 at 21:08:52 (where time is measured in the [http://en.wikipedia.org/wiki/Coordinated_Universal_Time UTC] time zone).&lt;br /&gt;
* Once again the edit &#039;&#039;&#039;time&#039;&#039;&#039; given as a number encoding milliseconds since January 1, 1970 at 00:00:00.000 Greenwich Mean Time. (This value is actually obtained by the method &amp;lt;code&amp;gt;getTimeInMillis&amp;lt;/code&amp;gt; of the java class &amp;lt;code&amp;gt;Calendar&amp;lt;/code&amp;gt;.) The time in milliseconds is helpful if you just need the time &#039;&#039;difference&#039;&#039; between revisions and not the actual time or date; it is obvisously easier to compute the time difference from numbers than from data/time strings.&lt;br /&gt;
* The edit &#039;&#039;&#039;type&#039;&#039;&#039; which can be &#039;&#039;added&#039;&#039;, &#039;&#039;deleted&#039;&#039;, &#039;&#039;restored&#039;&#039;, or &#039;&#039;undeleted&#039;&#039;; we say more on this below.&lt;br /&gt;
* The &#039;&#039;&#039;word count&#039;&#039;&#039;, i.e., the number of words that are added, deleted, restored, or undeleted with respect to the given target.&lt;br /&gt;
* The &#039;&#039;&#039;active user&#039;&#039;&#039; is the user that has done the edit; it is the source node of the edit event. The user is identified by a user name if logged in; otherwise (if it is an anonymous edit) the user is identified by an IP address.&lt;br /&gt;
* The &#039;&#039;&#039;target&#039;&#039;&#039; node of the edit event is either the page or a user. If the event type is &#039;&#039;added&#039;&#039;, then the target is the page (the active user adds text to the page). If the event type is &#039;&#039;deleted&#039;&#039;, &#039;&#039;restored&#039;&#039;, or &#039;&#039;undeleted&#039;&#039;, then the target is the user who has previously written or deleted the text (the active user deletes/restores/undeletes text that has been added/deleted by the target user).&lt;br /&gt;
&lt;br /&gt;
We say more on the different event types in the following.  &lt;br /&gt;
&lt;br /&gt;
=== The structure of edit network data ===&lt;br /&gt;
&lt;br /&gt;
Consider an example of three revisions on one page where&lt;br /&gt;
* (in Revision 1) user &#039;&#039;Alice&#039;&#039; adds some new text to the page;&lt;br /&gt;
* subsequently (in Revision 2), user &#039;&#039;Bob&#039;&#039; deletes this text;&lt;br /&gt;
* then (in Revision 3), user &#039;&#039;Charlie&#039;&#039; [http://en.wikipedia.org/wiki/Help:Reverting reverts] Bob&#039;s edit - setting back the page text to the one submitted in Revision 1.&lt;br /&gt;
&lt;br /&gt;
These three edits together give rise to &#039;&#039;&#039;four&#039;&#039;&#039; dyadic edit events (shown in the image below):&lt;br /&gt;
&lt;br /&gt;
[[File:Edit_network_example.png]]&lt;br /&gt;
&lt;br /&gt;
* An edit event of type &#039;&#039;added&#039;&#039; from user Alice to the edited page.&lt;br /&gt;
* An edit event of type &#039;&#039;deleted&#039;&#039; from user Bob directed to user Alice.&lt;br /&gt;
* An edit event of type &#039;&#039;restored&#039;&#039; from user Charlie directed to user Alice (Charlie restored text that has been previously written by Alice).&lt;br /&gt;
* An edit event of type &#039;&#039;undeleted&#039;&#039; from user Charlie directed to user Bob (Charlie restored text that has been previously deleted by Bob). &#039;&#039;&#039;Note&#039;&#039;&#039; that after the revert the restored text is (again) authored by Alice and not by Charlie.&lt;br /&gt;
&lt;br /&gt;
All edit events are weighted by the number of words that have been added, deleted, restored, or undeleted and all edit events have a time stamp marking the time when the edit has been submitted.&lt;br /&gt;
&lt;br /&gt;
A single edit on a Wikipedia page generates one &#039;&#039;&#039;hyperedge&#039;&#039;&#039; linking the active user to (potentially) several other users and the edited page. Such a hyperedge has been turned into several lines of the CSV file, each encoding one &#039;&#039;&#039;(dyadic) edge&#039;&#039;&#039;, linking the source (active user) to one target in one interaction type. Note that the hyperedges can be reconstructed from the data using the revision ids (see above).&lt;br /&gt;
&lt;br /&gt;
For determining the amount of text modified in an edit we make some choices. For instance, if complete sentences are just moved from one part of the page to another, we do not count this as any change. More detailed information about the text-processing conventions can be found in&lt;br /&gt;
* Ulrik Brandes, Patrick Kenis, J&amp;amp;uuml;rgen Lerner, and Denise van Raaij: [http://www.inf.uni-konstanz.de/algo/publications/bklv-nacsw-09.pdf &#039;&#039;&#039;Network Analysis of Collaboration Structure in Wikipedia&#039;&#039;&#039;]. Proc. 18th Intl. World Wide Web Conference (WWW 2009).&lt;br /&gt;
and more technically in &lt;br /&gt;
* Ulrik Brandes, Patrick Kenis, J&amp;amp;uuml;rgen Lerner, and Denise van Raaij: [http://www.inf.uni-konstanz.de/algo/publications/bklv-cwen-09.pdf &#039;&#039;&#039;Computing Wikipedia Edit Networks&#039;&#039;&#039;]. Technical Report, 2009.&lt;br /&gt;
&lt;br /&gt;
For convenience, we make the computed edit events available for download in the file [[Media:Social_network_analysis.zip|Social_network_analysis.zip]].&lt;br /&gt;
&lt;br /&gt;
== Importing edit event networks into visone ==&lt;br /&gt;
&lt;br /&gt;
The CSV file with the computed edit events can be imported in visone when opening it as an &#039;&#039;&#039;event list file&#039;&#039;&#039;. Visone&#039;s capabilities in importing and analyzing event networks are documented in the [[Event_networks_(tutorial)|tutorial on event networks]]; here we treat the special case of edit event networks.&lt;br /&gt;
&lt;br /&gt;
To open an event list file (such as the newly created &#039;&#039;Social_network_analysis.csv&#039;&#039;) click on &#039;&#039;&#039;open&#039;&#039;&#039; in visone&#039;s &#039;&#039;&#039;file&#039;&#039;&#039; menu, select &#039;&#039;&#039;files of type&#039;&#039;&#039;: &#039;&#039;event list files&#039;&#039;, navigate to the CSV file, and click on &#039;&#039;&#039;ok&#039;&#039;&#039;. In the import options, choose&lt;br /&gt;
the semicolon (&#039;&#039;&#039;;&#039;&#039;&#039;) as a cell delimiter and double quotes (&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;) as textframe.&lt;br /&gt;
&lt;br /&gt;
[[File:File_open_eventlist.png]] [[File:Import_options_event_list.png]]&lt;br /&gt;
&lt;br /&gt;
visone can now read the various entries of the input file - and you have to specify how these should be mapped to the resulting network in the dialog &#039;&#039;&#039;EventNetwork specification&#039;&#039;&#039; (shown below). Concretely you have to specify how the various components of an event are encoded in the file (&#039;&#039;Event format&#039;&#039; tab); how to iterate over the network sequence (&#039;&#039;Event iterator&#039;&#039; tab); how the events are mapped to the network&#039;s link attributes (&#039;&#039;Event network&#039;&#039; tab); and, if desired, which statistics should be computed while constructing the event network (&#039;&#039;Eventnet statistics&#039;&#039; tab). The tabs should be filled out in the order as they are numbered in the dialog since choice-possibilities for the latter tabs depend on previous settings. If you make changes in some tab you have to subsequently set (again) the values for the latter tabs.&lt;br /&gt;
&lt;br /&gt;
=== Event format ===&lt;br /&gt;
&lt;br /&gt;
In the event format tab (see the image below) you first have to specify which columns of the input file hold the information about the five components of an event (source, target, time, type, and weight). You can set the values as in the image below. &lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_format.png]]&lt;br /&gt;
&lt;br /&gt;
After these five components have been chosen visone needs some information about the interpretation of time. (visone can handle very general date/time formats - but some information is necessary.) The first choice is the selection between &#039;&#039;&#039;numeric time&#039;&#039;&#039; (if the time fields correspond to integer numbers) or &#039;&#039;&#039;calendar time&#039;&#039;&#039; (if time fields can somehow, specified below, be turned into a date/time). We have calendar time in our example.&lt;br /&gt;
&lt;br /&gt;
If time is given by calendar, a &#039;&#039;&#039;time format pattern&#039;&#039;&#039; has to be specified. visone proposes some known pattern - among others the pattern &#039;&#039;&#039;yyyy-MM-dd&#039;T&#039;HH:mm:ss&#039;Z&#039;&#039;&#039;&#039; which is appropriate for the Wikipedia edit times. You can enter other than the proposed patterns in the textfield if date/time is formatted differently (see the webpage on the java class [http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html SimpleDateFormat] for guidance). visone assists you in finding the right pattern by showing some date/time strings as they appear in the file and - whenever you select a date format pattern - the dialog shows you the current time formatted by the specified pattern.&lt;br /&gt;
&lt;br /&gt;
Finally, you have to specify a &#039;&#039;&#039;time unit&#039;&#039;&#039;. If time is numeric you have to enter a (integer) number in the textfield. If time is given by calendar you can select a &amp;quot;natural&amp;quot; time unit from &#039;&#039;Millisecond&#039;&#039; to &#039;&#039;Year&#039;&#039;. An appropriate time unit makes the iteration over the event sequence (and potentially the decay of link attributes over time) more intuitive. When computing event network statistics, events that happen within the same time unit are treated as independent of each other. The finest time unit that makes sense for the Wikipedia edit events is &#039;&#039;Second&#039;&#039; (since the edit times are not given with higher precision). But you could also choose &#039;&#039;Day&#039;&#039; as a time unit if you think that this is fine-grained enough.&lt;br /&gt;
&lt;br /&gt;
When all settings in the event format tab are done, you can create the list of events by clicking on the &#039;&#039;&#039;Apply (create events)&#039;&#039;&#039; button. A message informs about the number of events and the number of time units from the first to the last event.&lt;br /&gt;
&lt;br /&gt;
=== Event iterator ===&lt;br /&gt;
&lt;br /&gt;
In the event iterator tab (see below) you have to specify the start and end time of the time interval to be processed and the delay between network snapshots.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_iterator.png]]&lt;br /&gt;
&lt;br /&gt;
When the events have been created after filling out the event format tab (see the preceeding section) visone suggests as start time the time of the first event and as end time the time of the last event. If you don&#039;t want to process the whole event sequence you can increase the start time and/or decrease the end time. After clicking on the upper &#039;&#039;&#039;Apply / get info&#039;&#039;&#039; button, visone informs you about the number of events and time units in the specified subsequence. You might just take all events by not changing the interval borders; this includes all events from September 23, 2003 to July 11, 2012 - as can be seen in the dialog.&lt;br /&gt;
&lt;br /&gt;
Then you have to choose the time points when a network snapshot is to be created by specifying the delay between snapshots. You can see in the dialog that the event sequence spans more than 277 million time units (i.e., seconds with the current settings). The number of snapshots must be small (some 10 or 20 snapshots would still be ok), since they are all opened in a new tab in visone. When specifying: &#039;&#039;create snapshots after every&#039;&#039; &#039;&#039;&#039;100,000,000&#039;&#039;&#039; &#039;&#039;time unit(s)&#039;&#039;, then visone creates three snapshots. (This is an example where a coarser time unit might be more intuitive; 100 million seconds are actually a bit more than 1157 days.) visone always creates one snapshot at the end of the event sequence - even if the waiting time is less than the specified number.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Do not click on &#039;&#039;Process event network&#039;&#039; before you specify the event network in the next step.&lt;br /&gt;
&lt;br /&gt;
=== Event network ===&lt;br /&gt;
&lt;br /&gt;
The tab to specify the event network is the most important one - here you define which &#039;&#039;&#039;link attributes&#039;&#039;&#039; of the event network summarize the past events, how events of various types add to these attributes, and how they change over time. The dialog might seem a bit complicated at first glance but the mechanism to specify the evolution of the event network is very powerful and general.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_network.png]]&lt;br /&gt;
&lt;br /&gt;
The first thing to do is to decide on the link attributes. Here you are free to choose any attribute name (that makes it easy to remember the intuition of the attribute). Furthermore, a halftime - defining how fast attributes decay over time - has to be specified. The halftime has the following effect: when a particular link attribute on a particular dyad (pair or actors) has a value of &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; at time &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, then (if no event on the same dyad happens in between) the value is &amp;lt;math&amp;gt;x/2&amp;lt;/math&amp;gt; at time&lt;br /&gt;
&amp;lt;math&amp;gt;t+halftime&amp;lt;/math&amp;gt;. Intuitively, link attributes with a positive halftime capture &#039;&#039;recent interaction&#039;&#039;. A halftime equal to zero or negative indicates that the respective attribute does not decay over time; these attributes capture &#039;&#039;past interaction&#039;&#039; irrespective of the elapsed time.&lt;br /&gt;
&lt;br /&gt;
In our concrete example we choose the following link attributes.&lt;br /&gt;
* The attributes &#039;&#039;added&#039;&#039;, &#039;&#039;deleted&#039;&#039;, &#039;&#039;restored&#039;&#039;, and &#039;&#039;undeleted&#039;&#039; just add up the weight (i.e., the number of words modified) of past events of the respective type (with no decay). For instance, the value of the attribute &#039;&#039;added&#039;&#039; on a link connecting user &#039;&#039;U&#039;&#039; with page &#039;&#039;P&#039;&#039; at time &#039;&#039;t&#039;&#039; is equal to the number of words that &#039;&#039;U&#039;&#039; contributed to &#039;&#039;P&#039;&#039; at or before time &#039;&#039;t&#039;&#039;. Similarly, the value of &#039;&#039;deleted&#039;&#039; on a dyad &#039;&#039;(U,V)&#039;&#039; is equal to the number of words that user &#039;&#039;U&#039;&#039; deleted of text previously written by user &#039;&#039;V&#039;&#039;.&lt;br /&gt;
* The attribute &#039;&#039;recently added&#039;&#039; counts words added by users to a page but has a decay over time. If we choose as halftime the same value as for the interval between snapshots, then 100 words added just at the end of the first interval (say) contribute with a value of 50 at the end in the second snapshot. (It is also possible to introduce attributes like &#039;&#039;recently deleted&#039;&#039;, etc; and it would also be possible to have varying halftimes to capture very recent interaction, recent interaction, more distant interaction, etc., in the same event network.)&lt;br /&gt;
* The attribute &#039;&#039;log added&#039;&#039; adds up the logarithm of the number of newly contributed words. A logarithmic transformation is appropriate in very skewed event weights (when, say, twice the number of words should not count twice as much but only slighly more). Other transformations of event weights are also possible.&lt;br /&gt;
* The attribute &#039;&#039;interacted&#039;&#039; adds up the number of modified (added, deleted, restored, or undeleted) words irrespective of the event type.&lt;br /&gt;
* The attribute &#039;&#039;agreed-disagreed&#039;&#039; is meant as a proxy for whether a user agrees or rather disagrees with the edits of another user. Specifically, deletions and undeletions are interpreted as disagreements since a user makes another user&#039;s edits undone; restoring text is interpreted as an agreement. (This indicator is proposed and used in the published papers cited in the [[Wikipedia_edit_networks_(tutorial)#References|references]] but will also become clearer in this tutorial.) &lt;br /&gt;
&lt;br /&gt;
At the beginning the dialog has two rows for two different link attributes; more can be added by clicking the &#039;&#039;&#039;more attributes ...&#039;&#039;&#039; button. When all attributes are specified they have to be added to the event network (for instance by clicking the &#039;&#039;&#039;Add / update all&#039;&#039;&#039; button). Then you can create the weight function table.&lt;br /&gt;
&lt;br /&gt;
In the &#039;&#039;&#039;weight function table&#039;&#039;&#039; there is one column for every event type and one row for every link attribute. A particular entry in this table specifies how events of the column type contribute to the link attribute in the respective row. The entries are combo boxes allowing you to select from the available weight functions. For instance, selecting the weight function &#039;&#039;Identity&#039;&#039; for the attribute &#039;&#039;deleted&#039;&#039; and the event type &#039;&#039;deleted&#039;&#039; implies that the weight (i.e., the number of words) of events of type &#039;&#039;deleted&#039;&#039; are added (without transforming them) to the link attribute &#039;&#039;deleted&#039;&#039;. The weight function &#039;&#039;Logarithm&#039;&#039; for the attribute &#039;&#039;log added&#039;&#039; and the event type &#039;&#039;added&#039;&#039; implies that the logarithm of the event weight is added. Note that in the row corresponding to the attribute &#039;&#039;interacted&#039;&#039; we add up the weights of all event types; for the attribute &#039;&#039;agreed-disagreed&#039;&#039; we add weights of events of type &#039;&#039;restored&#039;&#039; and subtract (chose the weight function &#039;&#039;MinusIdentity&#039;&#039;) weights of events of type &#039;&#039;deleted&#039;&#039; or &#039;&#039;undeleted&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
When these settings are complete you can process the event network. (You need to fill out the event statistics tab only when you want to do a statistical analysis of the event network - this is documented in a latter section: [[Wikipedia_edit_networks_(tutorial)#Statistical_modeling_of_edit_event_networks]].) After clicking on the button &#039;&#039;&#039;Process event network!&#039;&#039;&#039; it takes a few minutes or so (depending on the size and number of the snapshots). With our settings we create three network tabs holding the three snapshots. The dialog does not close after processing; you might change some of the settings and create different snapshots - or close the dialog explicitly.&lt;br /&gt;
&lt;br /&gt;
For convenience, we make the GraphML file of the first snapshot available for download in [[Media:Social_network_analysis_(raw).graphml.zip|Social_network_analysis_(raw).graphml.zip]].&lt;br /&gt;
&lt;br /&gt;
== Analysis and visualization of edit networks ==&lt;br /&gt;
&lt;br /&gt;
The created network snapshots have nodes representing the page (or pages, if there are several in the history file) and all users that contributed at or before the time of the snapshot. The link attributes encode (in our case) the number of words added, deleted, restored, undeleted, or modifications thereof (as explained before) - again taken at the snapshot time. Analysis and visualization works similar as for any other network with many numerical link attributes. In particular, many of the derived user attributes that have been proposed in Ulrik Brandes, Patrick Kenis, J&amp;amp;uuml;rgen Lerner, and Denise van Raaij (2009): [http://www.inf.uni-konstanz.de/algo/publications/bklv-nacsw-09.pdf &#039;&#039;&#039;Network Analysis of Collaboration Structure in Wikipedia&#039;&#039;&#039;] can be computed and visualized by visone starting from the available link attributes. Examplarily we illustrate some possibilities with the first snapshot, the smallest one, that has 412 nodes and 1341 links.&lt;br /&gt;
&lt;br /&gt;
The first observation is that the layout after loading is very cluttered. Actually, all user-nodes that added at least one word to the page (&#039;&#039;Social network analysis&#039;&#039;) are at a distance of two or smaller - leading to the very dense circle around one very central node. An improvement can be achieved by deleting the node representing the page - after some information has been collected in the (user-)nodes. Therefore, go to the [[analysis tab]] select the node outdegree with &#039;&#039;link strength&#039;&#039; set to the link attribute &#039;&#039;added&#039;&#039; and save it in a node attribute &#039;&#039;added&#039;&#039; (see the screen shot below). Do the same again with the attribute &#039;&#039;log added&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_outdegree_added.png]]&lt;br /&gt;
&lt;br /&gt;
To delete the single node representing the page we have to select it first. This can be done by selecting the single node with the label equal to &#039;&#039;Social network analysis&#039;&#039; in the [[Attribute manager]]; or (more generally since it is applicable to networks with several page-nodes) we compute the unweighted outdegree and select all nodes with outdegree equal to zero - these are exactly the nodes representing pages.&lt;br /&gt;
&lt;br /&gt;
After having deleted the node representing the page, reducing to the largest connected component, and computing and visualizing some additional indicators, we can come up with an image as the following.&lt;br /&gt;
&lt;br /&gt;
[[File:Wikipedia_vis_example.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Here the color of the nodes represent the amount of text added (blue for those who added a lot). The size of the nodes as well as the centrality of their position and the node label size represent the activity of the nodes - computed from the &#039;&#039;interacted&#039;&#039; attribute (note that this includes adding, deleting, restoring, or undeleting text). The width of the links is again a function of the &#039;&#039;interacted&#039;&#039; attribute. Finally the link color is tending to orange if the &#039;&#039;agreed-disagreed&#039;&#039; attribute admits strongly negative values (resulting from deletion or undeletion and being interpreted as disagreement) and the link color is tending to blue when the &#039;&#039;agreed-disagreed&#039;&#039; attribute becomes larger (being interpreted as agreement).&lt;br /&gt;
&lt;br /&gt;
Many other ways to graphically encode these and other indicators are possible.&lt;br /&gt;
&lt;br /&gt;
For convenience, we make the GraphML file of the first snapshot with an improved layout available for download in [[Media:Social_network_analysis.graphml.zip|Social_network_analysis.graphml.zip]].&lt;br /&gt;
&lt;br /&gt;
== Statistical modeling of edit event networks ==&lt;br /&gt;
&lt;br /&gt;
While importing event networks it is possible to compute and save network statistics associated with dyadic events that can be used to build and estimate a statistical model for the &#039;&#039;&#039;conditional event type&#039;&#039;&#039;. Such models have been proposed in Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders (2009): [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;] and applied to Wikipedia edit networks in J&amp;amp;uuml;rgen Lerner, Ulrik Brandes, Patrick Kenis, and Denise van Raaij (2012): [http://www.transcript-verlag.de/ts1927/ts1927.php &#039;&#039;&#039;Modeling Open, Web-based Collaboration Networks: The Case of Wikipedia&#039;&#039;&#039;]. These models can be used to test whether the network of past edit events explains the likelihood of future deletions or undeletions, for instance&lt;br /&gt;
* Do users have a tendency to delete the edits from users who deleted them previously?&lt;br /&gt;
* Do the deletion/undeletion events give rise to patterns of structural balance?&lt;br /&gt;
(Note that the functionality for statistical analysis of event networks has been superseded by the [https://github.com/juergenlerner/eventnet &#039;&#039;&#039;event network analyzer (eventnet)&#039;&#039;&#039;], which is a separate software that is not restricted to the analysis of the conditional event type and offers much more general settings. We nevertheless keep the description below how to perform a statistical analysis of event networks with visone.)&lt;br /&gt;
&lt;br /&gt;
The event network statistics can be computed during importing the data, are saved in a file, and can then be analyzed with any statistical software, such as [http://www.r-project.org/ &#039;&#039;&#039;R&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
To illustrate how such statistics can be computed and modeled we modify the link attributes in the event network tab (see below). (The settings in the event format and event iterator tabs stay the same.)&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_attr4stat.png]]&lt;br /&gt;
&lt;br /&gt;
Specifically, we define only two attributes, one that measures past agreement (a fuction or events of type &#039;&#039;restored&#039;&#039;) and one the measures past disagreement (a function of events of type &#039;&#039;deleted&#039;&#039; or &#039;&#039;undeleted&#039;&#039;). The halftime of both attributes is set to 30 days (which is 2592000 seconds) and the event weights (word counts) are logarithmically scaled.&lt;br /&gt;
&lt;br /&gt;
=== Specifying event statistics in the eventnet dialog ===&lt;br /&gt;
&lt;br /&gt;
The statistics to be computed are defined in the eventnet statistics tab of the import dialog (see below). You first have to specify whether a statistic table should be created at all; if yes an output file has to be chosen and one or more statistics have to be defined.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_statistics.png]]&lt;br /&gt;
&lt;br /&gt;
The statistics are used to model events in the following way: whenever an event happens that is initiated by a &#039;&#039;&#039;source&#039;&#039;&#039; node and directed to a &#039;&#039;&#039;target&#039;&#039;&#039; node, then the dyad &#039;&#039;(source, target)&#039;&#039; is embedded in the network of past events, i.e., all events that happened before the current event. The event network statistics describe relevant aspects of this network of past events with respect to the specific dyad. visone offers three different types of statistics - dyad statistics, degree statistics, and triangle statistics - that can be varied with respect to edge direction and/or link attributes. After defining the statistics they have to be added to the event network by clicking on the &#039;&#039;&#039;Add / update&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
==== Dyad statistics ====&lt;br /&gt;
&lt;br /&gt;
Dyad statistics encode aspects of the past events from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; or in the other direction. That is the dyad statistics encode how &#039;&#039;source&#039;&#039; interacted with &#039;&#039;target&#039;&#039; in the past and how &#039;&#039;target&#039;&#039; interacted with &#039;&#039;source&#039;&#039;. In our exmple we define four different dyad statistics that are obtained by switching the direction (&#039;&#039;inertia&#039;&#039; if &#039;&#039;&#039;OUT&#039;&#039;&#039;-going events - from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; - are considered and &#039;&#039;reciprocity&#039;&#039; if &#039;&#039;&#039;IN&#039;&#039;&#039;-coming events - from &#039;&#039;target&#039;&#039; to &#039;&#039;source&#039;&#039; - are considered) and the link attribute (&#039;&#039;positive&#039;&#039; for past agreements and &#039;&#039;negative&#039;&#039; for past disagreements).&lt;br /&gt;
&lt;br /&gt;
Intuitively, if users tend to delete text of those that deleted them, then we expect that the &#039;&#039;negative reciprocity&#039;&#039; statistic is positively related with the likelihood that the edit event is of type &#039;&#039;deleted&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Degree statistics ====&lt;br /&gt;
&lt;br /&gt;
Degree statistics summarize the past events around the dyad &#039;&#039;(source, target)&#039;&#039; by the weighted (out-/in-) degree of &#039;&#039;source&#039;&#039; or &#039;&#039;target&#039;&#039;. The links can be weighted by any attribute. For instance, the &#039;&#039;neg_outdeg_source&#039;&#039; statistic adds up the values of the &#039;&#039;disagreement&#039;&#039; attribute on all links starting at the &#039;&#039;source&#039;&#039; node (not only those that are directed to &#039;&#039;target&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Intuitively, if users that deleted a lot in the past tend to delete in the future, then we expect a positive relation between the &#039;&#039;neg_outdeg_source&#039;&#039; statistic and the likelihood that the edit event is of type &#039;&#039;deleted&#039;&#039;. This could point to the presence of users that play specific roles, for instance, &amp;quot;vandalism fighters&amp;quot; that undo malicious edits.&lt;br /&gt;
&lt;br /&gt;
==== Triangle statistics ====&lt;br /&gt;
&lt;br /&gt;
Triangle statistics summarize the network of past events around the dyad &#039;&#039;(source, target)&#039;&#039; by weighted indirect relations from &#039;&#039;source&#039;&#039; over any third node to &#039;&#039;target&#039;&#039; or the other way round. You can select the attributes for the links attached to &#039;&#039;source&#039;&#039; and to &#039;&#039;target&#039;&#039; and the direction which can be &#039;&#039;&#039;OUT&#039;&#039;&#039; (only out-going ties with respect to the &#039;&#039;source&#039;&#039;/&#039;&#039;target&#039;&#039;), &#039;&#039;&#039;IN&#039;&#039;&#039; (only in-coming ties), or &#039;&#039;&#039;SYM&#039;&#039;&#039; (adding up the attributes of out-going and in-coming ties). &lt;br /&gt;
&lt;br /&gt;
For instance, the statistic &#039;&#039;enemy_of_friend&#039;&#039; iterates over all users &#039;&#039;U&#039;&#039; in the network, multiplies the value of the &#039;&#039;agreement&#039;&#039; attribute on links connecting &#039;&#039;source&#039;&#039; and &#039;&#039;U&#039;&#039; (in both directions) with the value of the &#039;&#039;disagreement&#039;&#039; attribute on links connecting &#039;&#039;target&#039;&#039; and &#039;&#039;U&#039;&#039; (in both directions), and adds up these products for all &#039;&#039;U&#039;&#039;. Intuitively, the value of the &#039;&#039;enemy_of_friend&#039;&#039; statistic on the dyad &#039;&#039;(source, target)&#039;&#039; is high if there are many other users &#039;&#039;U&#039;&#039; that are in agreement with &#039;&#039;source&#039;&#039; and in disagreement with &#039;&#039;target&#039;&#039;; structural balance theory predicts that &#039;&#039;source&#039;&#039; is then more likely to disagree with &#039;&#039;target&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Starting the computation ====&lt;br /&gt;
&lt;br /&gt;
Once the output file and the statistics are specified, click on the &#039;&#039;&#039;Process event network!&#039;&#039;&#039; button. Snapshots are created as defined in the event iterator tab and statistics are computed as defined in the eventnet statistics tab.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that statistics associated with an event that happens at time &#039;&#039;t&#039;&#039; are only a function of events that happend earlier (strictly before &#039;&#039;t&#039;&#039;) - and do not depend on events that happen in the same time unit.&lt;br /&gt;
&lt;br /&gt;
The computed eventnet statistics file (&#039;&#039;Social_network_analysis_stats.csv&#039;&#039; in our example) is a table in CSV format in which each row corresponds to one event of the input file. The components of the event (source, target, time, type, and weight) are first repeated in each row - followed by the values of all statistics.&lt;br /&gt;
&lt;br /&gt;
=== Modeling the conditional event type ===&lt;br /&gt;
The statistics file can now be analyzed with any statistical software - we describe the following for the [http://www.r-project.org R environment for statistical computing] (also see the visone tutorial on the [[R_console_(tutorial)|R console]]).&lt;br /&gt;
&lt;br /&gt;
First set the R working directory to the directory where the statistics file is located, for instance &lt;br /&gt;
  setwd(&amp;quot;c:/juergen/projects/wiki/data/&amp;quot;)&lt;br /&gt;
To read the file into a table and see some summary statistics type&lt;br /&gt;
  eventnet.stats &amp;lt;- read.csv(&amp;quot;Social_network_analysis_stats.csv&amp;quot;, sep=&amp;quot;;&amp;quot;)&lt;br /&gt;
  summary(eventnet.stats)&lt;br /&gt;
For modeling the likelihood whether an edit is an &#039;&#039;undo&#039;&#039; edit we create a new binary variable &#039;&#039;&#039;is.undo&#039;&#039;&#039; that is equal to &#039;&#039;1&#039;&#039; if and only if the edit type is &#039;&#039;deleted&#039;&#039; or &#039;&#039;undeleted&#039;&#039;.&lt;br /&gt;
  eventnet.stats$is.undo &amp;lt;- 0&lt;br /&gt;
  eventnet.stats$is.undo[eventnet.stats$TYPE == &amp;quot;deleted&amp;quot;] &amp;lt;- 1 &lt;br /&gt;
  eventnet.stats$is.undo[eventnet.stats$TYPE == &amp;quot;undeleted&amp;quot;] &amp;lt;- 1 &lt;br /&gt;
  summary(eventnet.stats)&lt;br /&gt;
We remove those events that are of type &#039;&#039;added&#039;&#039; (since these are interactions between users and the page).&lt;br /&gt;
  eventnet.stats &amp;lt;- eventnet.stats[eventnet.stats$TYPE != &amp;quot;added&amp;quot;,]&lt;br /&gt;
Further we model only those events that are not self-loops.&lt;br /&gt;
  eventnet.stats &amp;lt;- eventnet.stats[as.character(eventnet.stats$SOURCE) != as.character(eventnet.stats$TARGET),]&lt;br /&gt;
A first very simple model is a logit model for the probability that an edit from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; is an &amp;quot;undo&amp;quot; edit - explained by the past deletions in the other direction (that is from &#039;&#039;target&#039;&#039; directed to the &#039;&#039;source&#039;&#039; node).&lt;br /&gt;
  model.1 &amp;lt;- glm(is.undo ~ 1 + negative_reciprocity, family = binomial(link=logit), data = eventnet.stats)&lt;br /&gt;
  summary(model.1)&lt;br /&gt;
A summary of the estimated model yields (among others) the following output:&lt;br /&gt;
  glm(formula = is.undo ~ 1 + negative_reciprocity, family = binomial(link = logit), data = eventnet.stats)&lt;br /&gt;
  Coefficients:&lt;br /&gt;
                       Estimate Std. Error z value Pr(&amp;gt;|z|)    &lt;br /&gt;
  (Intercept)           0.49213    0.02175  22.630  &amp;lt; 2e-16 ***&lt;br /&gt;
  negative_reciprocity  0.61765    0.20475   3.017  0.00256 ** &lt;br /&gt;
  ---&lt;br /&gt;
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 &lt;br /&gt;
The interpretation is that there seems to be a habit of &amp;quot;retaliate&amp;quot; deletions: if &#039;&#039;target&#039;&#039; has undone edits of &#039;&#039;source&#039;&#039; then there is an increased probability (postitive coefficient for the &#039;&#039;negative_reciprocity&#039;&#039; statistic) that &#039;&#039;source&#039;&#039; makes edits of &#039;&#039;target&#039;&#039; undone.&lt;br /&gt;
&lt;br /&gt;
A more complex model tests for structural balance effects&lt;br /&gt;
  model.2 &amp;lt;- glm(is.undo ~ 1 +  friend_of_friend + enemy_of_friend + &lt;br /&gt;
                                friend_of_enemy + enemy_of_enemy,&lt;br /&gt;
                                family = binomial(link=logit), data = eventnet.stats)&lt;br /&gt;
leading to the following estimates.&lt;br /&gt;
  Coefficients:&lt;br /&gt;
                   Estimate Std. Error z value Pr(&amp;gt;|z|)    &lt;br /&gt;
  (Intercept)       0.46288    0.02270  20.393  &amp;lt; 2e-16 ***&lt;br /&gt;
  friend_of_friend  0.05798    0.08871   0.654  0.51340    &lt;br /&gt;
  enemy_of_friend   0.20675    0.07022   2.945  0.00323 ** &lt;br /&gt;
  friend_of_enemy   0.92448    0.10156   9.102  &amp;lt; 2e-16 ***&lt;br /&gt;
  enemy_of_enemy   -0.18435    0.02766  -6.666 2.63e-11 ***&lt;br /&gt;
  ---&lt;br /&gt;
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1&lt;br /&gt;
The interpretation of the estimated coefficient is as follows (also see the four illustrative images below).&lt;br /&gt;
&lt;br /&gt;
[[File:Friend_of_friend.png|250px]] [[File:Enemy_of_friend.png|250px]] [[File:Friend_of_enemy.png|250px]] [[File:Enemy_of_enemy.png|250px]]&lt;br /&gt;
&lt;br /&gt;
The coefficient associated with the &#039;&#039;enemy_of_friend&#039;&#039; statistic is significantly positive. This implies that there is an increase probability for &#039;&#039;source&#039;&#039; undoing an edit of &#039;&#039;target&#039;&#039; if &#039;&#039;target&#039;&#039; has past disagreements with another user with which &#039;&#039;source&#039;&#039; has past agreements (second image in the row above). A similar effect has been found if &#039;&#039;target&#039;&#039; has past agreements with another user with past disagreements with &#039;&#039;source&#039;&#039; (positive parameter associated with the &#039;&#039;friend_of_enemy&#039;&#039; statistic and third image in the row above). The parameter associated with &#039;&#039;enemy_of_enemy&#039;&#039; is significantly negative; this implied that if both, &#039;&#039;source&#039;&#039; and &#039;&#039;target&#039;&#039; have past disagreements with a common other node (forth image), then they have a decreased probability of undoing each others edits. While these three effects are in line with the predictions of [[structural balance theory]], there is no significant parameter associated with the &#039;&#039;friend_of_friend&#039;&#039; statistic (first image in the row above).&lt;br /&gt;
&lt;br /&gt;
See more on structural balance theory in the context of Wikipedia edit networks in J&amp;amp;uuml;rgen Lerner, Ulrik Brandes, Patrick Kenis, and Denise van Raaij: [http://www.transcript-verlag.de/ts1927/ts1927.php &#039;&#039;&#039;Modeling Open, Web-based Collaboration Networks: The Case of Wikipedia&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
== The network of &#039;&#039;simple&#039;&#039; edit events ==&lt;br /&gt;
&lt;br /&gt;
The [[WikiEvent_(software)|&#039;&#039;&#039;WikiEvent&#039;&#039;&#039; software]] offers the possibility to compute &#039;&#039;simple&#039;&#039; edit events from a (potentially huge) set of Wikipedia pages. A &#039;&#039;&#039;simple edit event&#039;&#039;&#039; is a directed, time-stamped event from a user &#039;&#039;U&#039;&#039; to a page &#039;&#039;P&#039;&#039; encoding that &#039;&#039;U&#039;&#039; made some edit on page &#039;&#039;P&#039;&#039; at the given time point. Simple edit events do not encode the type of an edit, nor the amount of text changed, nor the other users whose text has been changed (if any). A single edit on a Wikipedia page, thus, results in exactly one simple edit event - while several (&#039;&#039;not simple&#039;&#039;) edit events might result from one edit. To determine the edit events, WikiEvent does not even have to look at the page text - therefore the current text of any revision does not even have to be downloaded and the data collection and processing is much faster. Simple edit events are most interesting if they are computed from more than just one page (the simple edit events from one page just form a star with the page in the center), for instance on all pages that are relevant for a certain topic.&lt;br /&gt;
&lt;br /&gt;
Since the page text is not necessary for computing simple edit events, it is possible to do this from history files that just contain meta-information about the page, author, and time stamp. Such &#039;&#039;&#039;stub&#039;&#039;&#039; files are provided in the [http://dumps.wikimedia.org/backup-index.html Wikimedia backup dumps]. For instance, to download meta-data about the complete English-language Wikipedia, follow the &#039;&#039;&#039;enwiki&#039;&#039;&#039;-link on that page, search for &#039;&#039;&#039;enwiki-&amp;lt;day_of_backup&amp;gt;-stub-meta-history.xml.gz&#039;&#039;&#039;, and download this file. On July 2, 2012 the compressed file had a size of 25 gigabyte and after unpacking it a size of more than 130 gigabyte. Such large files can be processed by WikiEvent because processing can be done in a single pass over the file. (Reading such a file from the hard disc can take a few hours but certainly less than a day with current standard desktop computers.) Note that simple edit events &#039;&#039;can&#039;&#039; also be computed from complete history files that do contain the page text.&lt;br /&gt;
&lt;br /&gt;
To extract simple edit events click on &#039;&#039;&#039;extract simple edit events&#039;&#039;&#039; in the &#039;&#039;&#039;page&#039;&#039;&#039; menu of WikiEvent. You have to specify a file containing the titles of pages for which edit events should be extracted (we say more on this below), a history file (which can be a stub file without page text), and an output directory. WikiEvent then creates three files in the output directory, one containing the simple edit events, one with a mapping from numerical &#039;&#039;user ids&#039;&#039; to user names, and one with a mapping from numerical &#039;&#039;page ids&#039;&#039; to page titles.&lt;br /&gt;
&lt;br /&gt;
[[File:Wikipedia_extract_simple_edit_events.png]]&lt;br /&gt;
  &lt;br /&gt;
The input file with the page titles that has to be specified must contain one title per line - and nothing else. For instance, we created a file containing all page titles that include the terms &#039;&#039;social&#039;&#039; and &#039;&#039;network&#039;&#039; (for reproducability, this file is available at [[Media:SocialNetworkPageTitles.zip]]). Page titles are case-sensitive, for instance, &#039;&#039;Social network analysis&#039;&#039; points to a different page than &#039;&#039;Social Network Analysis&#039;&#039;. The first few lines of this file look like this.&lt;br /&gt;
  Social network&lt;br /&gt;
  Social networking&lt;br /&gt;
  Socialist Solidarity Network&lt;br /&gt;
  Internet social network&lt;br /&gt;
  Social Networking&lt;br /&gt;
  Social networks&lt;br /&gt;
  Internet social networks&lt;br /&gt;
  Social Science Research Network&lt;br /&gt;
  Socialist Organizing Network&lt;br /&gt;
  Social Network Analysis&lt;br /&gt;
  Socialist Unity Network&lt;br /&gt;
  ...&lt;br /&gt;
and the file contains 149 titles.&lt;br /&gt;
&lt;br /&gt;
The resulting three files are available at [[Media:Social_network_simple_edit_events.zip]]. The event file &amp;lt;code&amp;gt;Social_network_SimpleEditEvents.csv&amp;lt;/code&amp;gt; contains more than 23,000 events. It can be imported into visone in a similar way as described [[Wikipedia_edit_networks_(tutorial)#Importing_edit_event_networks_into_visone|above]] (just that there are no event types and weights). A snapshot of this network in the year 2006 looks like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Social_Network_SimpleEditEvents_(2006).png|400px]]&lt;br /&gt;
&lt;br /&gt;
== The discussion network ==&lt;br /&gt;
&lt;br /&gt;
In principle, the extraction of edit events could be done for pages of all types - including [http://en.wikipedia.org/wiki/Wikipedia:Talk_page_guidelines discussion pages]. However, this would not capture the fact that the editing on discussion pages follows a different logic than the editing on content pages. On discussion pages it is rather unusual that edits are made undone; on the other hand users often &#039;&#039;&#039;reply&#039;&#039;&#039; to posts of other users. To better represent the communication structure of talk pages, WikiEvent offers the possibility to &#039;&#039;&#039;extract talk events&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Wikipedia_extract_talk_events.png]]&lt;br /&gt;
&lt;br /&gt;
The discussion around a page is structured by &#039;&#039;&#039;discussion threads&#039;&#039;&#039;. A new thread is marked by a section headline - typically describing the subject to discuss or a question that the users wants to be answered. Other users can reply by writting their message under the same headline. After having downloaded the history of the page [http://en.wikipedia.org/wiki/Talk:Social_network_analysis Talk:Social network analysis] (for instance) and having extracted the &#039;&#039;&#039;talk events&#039;&#039;&#039; with WikiEvent, the first few lines of the resulting event file look like the following.&lt;br /&gt;
&lt;br /&gt;
  ThreadHeadline;Time(calendar);Time(milliseconds);ActiveUser;DiscussionType;CharacterCount;IndexInThread;Target;ThreadInitiator;PreceedingAuthors...&lt;br /&gt;
  &amp;quot;== Dunbar&#039;s 150 rule ==&amp;quot;;&amp;quot;2004-07-29T13:22:39Z&amp;quot;;1091100159000;&amp;quot;200.225.194.49&amp;quot;;initialized_thread;499;0;&amp;quot;== Dunbar&#039;s 150 rule ==&amp;quot;;&amp;quot;200.225.194.49&amp;quot;;&lt;br /&gt;
  &amp;quot;==Expansion==&amp;quot;;&amp;quot;2004-10-30T06:09:59Z&amp;quot;;1099109399000;&amp;quot;Goodoldpolonius&amp;quot;;initialized_thread;321;0;&amp;quot;==Expansion==&amp;quot;;&amp;quot;Goodoldpolonius&amp;quot;;&lt;br /&gt;
  &amp;quot;== Dunbar&#039;s 150 rule ==&amp;quot;;&amp;quot;2005-01-05T18:09:43Z&amp;quot;;1104944983000;&amp;quot;AndrewGray&amp;quot;;replied_to;274;1;&amp;quot;200.225.194.49&amp;quot;;&amp;quot;200.225.194.49&amp;quot;;&amp;quot;200.225.194.49&amp;quot;&lt;br /&gt;
  &amp;quot;== small world effect redirect ==&amp;quot;;&amp;quot;2005-03-23T21:29:57Z&amp;quot;;1111609797000;&amp;quot;Boud&amp;quot;;initialized_thread;0;0;&amp;quot;== small world effect redirect ==&amp;quot;;&amp;quot;Boud&amp;quot;;&lt;br /&gt;
  &amp;quot;==Image==&amp;quot;;&amp;quot;2005-03-27T05:01:50Z&amp;quot;;1111892510000;&amp;quot;Goodoldpolonius2&amp;quot;;initialized_thread;663;0;&amp;quot;==Image==&amp;quot;;&amp;quot;Goodoldpolonius2&amp;quot;;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-04-03T01:32:35Z&amp;quot;;1112484755000;&amp;quot;CesarB&amp;quot;;initialized_thread;393;0;&amp;quot;== External links ==&amp;quot;;&amp;quot;CesarB&amp;quot;;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-04-03T02:07:18Z&amp;quot;;1112486838000;&amp;quot;Goodoldpolonius2&amp;quot;;replied_to;458;1;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-05-02T06:07:09Z&amp;quot;;1115006829000;&amp;quot;AlanAu&amp;quot;;replied_to;402;2;&amp;quot;Goodoldpolonius2&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-05-06T22:39:28Z&amp;quot;;1115411968000;&amp;quot;AlanAu&amp;quot;;replied_to;135;3;&amp;quot;AlanAu&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;,&amp;quot;AlanAu&amp;quot;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-05-06T22:40:30Z&amp;quot;;1115412030000;&amp;quot;AlanAu&amp;quot;;replied_to;5;4;&amp;quot;AlanAu&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-05-06T23:12:26Z&amp;quot;;1115413946000;&amp;quot;Goodoldpolonius2&amp;quot;;replied_to;232;5;&amp;quot;AlanAu&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-05-13T18:05:40Z&amp;quot;;1116000340000;&amp;quot;82.149.68.78&amp;quot;;replied_to;181;6;&amp;quot;Goodoldpolonius2&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-05-22T18:22:01Z&amp;quot;;1116778921000;&amp;quot;AlanAu&amp;quot;;replied_to;365;7;&amp;quot;82.149.68.78&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;,&amp;quot;82.149.68.78&amp;quot;&lt;br /&gt;
  &amp;quot;== suggested additions ==&amp;quot;;&amp;quot;2005-05-26T03:01:44Z&amp;quot;;1117069304000;&amp;quot;AdamRetchless&amp;quot;;initialized_thread;913;0;&amp;quot;== suggested additions ==&amp;quot;;&amp;quot;AdamRetchless&amp;quot;;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
The file is a table encoded in a CSV file whose entries are separated by semicolons (&#039;&#039;&#039;;&#039;&#039;&#039;). The columns encode (from left to right).&lt;br /&gt;
* The thread &#039;&#039;&#039;headline&#039;&#039;&#039;, i.e., the subject of the discussion topic.&lt;br /&gt;
* The &#039;&#039;&#039;time&#039;&#039;&#039; given as a date/time string.&lt;br /&gt;
* Once again the &#039;&#039;&#039;time&#039;&#039;&#039; given as a number (milliseconds since January 1, 1970; see above).&lt;br /&gt;
* The &#039;&#039;&#039;active user&#039;&#039;&#039; which is the one who made the post.&lt;br /&gt;
* The discussion &#039;&#039;&#039;type&#039;&#039;&#039; of the edit which can be &#039;&#039;initialized_thread&#039;&#039; or &#039;&#039;replied_to&#039;&#039;.&lt;br /&gt;
* The &#039;&#039;&#039;character count&#039;&#039;&#039; indicating number of characters posted in this edit; this might be taken as a (very coarse) indicator for the amount of work invested in the post.&lt;br /&gt;
* The &#039;&#039;&#039;index&#039;&#039;&#039; of this post in its thread; this is a number counting the replies: 0 for the thread initialization, 1 for the first reply, 2 for the second reply, and so on.&lt;br /&gt;
* The &#039;&#039;&#039;target&#039;&#039;&#039; of the post. This is the thread headline if the type of the post is &#039;&#039;initialized_thread&#039;&#039; and it is the user who made the last preceeding post to the same thread.&lt;br /&gt;
* The &#039;&#039;&#039;initiator&#039;&#039;&#039; of the thread.&lt;br /&gt;
* Finally a list of all &#039;&#039;&#039;preceeding authors&#039;&#039;&#039; separated by commas (&#039;&#039;&#039;,&#039;&#039;&#039;); first the user who initialized the thread, then the user who made the first reply, etc.&lt;br /&gt;
&lt;br /&gt;
To import such a talk-event network into visone, chose &#039;&#039;&#039;files of type&#039;&#039;&#039;=&#039;&#039;event list files&#039;&#039; after clicking on &#039;&#039;&#039;open&#039;&#039;&#039; in the &#039;&#039;&#039;file&#039;&#039;&#039; menu. The settings for the cell delimiter and textframe are the same (semicolon and double-quotes). Then, as for the edit events you have to specify event format, iterator, network, and (potentially) statistics. For a possible choice on the event format see the screenshot below.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_format_talknet.png]]&lt;br /&gt;
&lt;br /&gt;
In the event iterator tab we chose to create a snapshot after every 200 days (leading to 14 snapshots). In the event network tab we create two attribute functions counting the number of &#039;&#039;initiate&#039;&#039; events or &#039;&#039;reply&#039;&#039; events and give them a halftime equal to the time span between snapshots.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_network_talknet.png]]&lt;br /&gt;
&lt;br /&gt;
After creating the 14 snapshots, encoding involvement in the discussion by node size and number of thread initializations by color, and visualizing the network collection with a [[Collections_(tutorial)#Dynamic_visualization_and_animation_of_a_network_collection|dynamic layout]] we can come up with the following still images (which are more interesting to view in an [[Collections_(tutorial)#Dynamic_visualization_and_animation_of_a_network_collection|animation]]).&lt;br /&gt;
&lt;br /&gt;
[[File:Talk.Social_network_analysis.png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(13028).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(13228).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(13428).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(13628).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(13828).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(14028).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(14228).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(14428).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(14628).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(14828).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(15028).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(15228).png|200px]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
Published papers that propose and/or make use of Wikipedia edit networks include the following.&lt;br /&gt;
* J&amp;amp;uuml;rgen Lerner, Ulrik Brandes, Patrick Kenis, and Denise van Raaij: [http://www.transcript-verlag.de/ts1927/ts1927.php &#039;&#039;&#039;Modeling Open, Web-based Collaboration Networks: The Case of Wikipedia&#039;&#039;&#039;]. In Markus Gamper, Linda Reschke, Michael Sch&amp;amp;ouml;nhuth (Eds.): Knoten und Kanten 2.0, pp 141-162. transcript-Verlag, 2012.&lt;br /&gt;
* J&amp;amp;uuml;rgen Lerner, Patrick Kenis, Denise van Raaij and Ulrik Brandes: [http://www.sciencedirect.com/science/article/pii/S0263237311000053 &#039;&#039;&#039;Will they stay or will they go? How network properties of WebICs predict dropout rates of valuable Wikipedians&#039;&#039;&#039;]. European Management Journal, 29(5):404-413, 2011.&lt;br /&gt;
* Ulrik Brandes, Patrick Kenis, J&amp;amp;uuml;rgen Lerner, and Denise van Raaij: [http://www.inf.uni-konstanz.de/algo/publications/bklv-nacsw-09.pdf &#039;&#039;&#039;Network Analysis of Collaboration Structure in Wikipedia&#039;&#039;&#039;]. Proc. 18th Intl. World Wide Web Conference (WWW 2009).&lt;br /&gt;
&lt;br /&gt;
More technical details about the computation of Wikipedia edit networks can be found in &lt;br /&gt;
* Ulrik Brandes, Patrick Kenis, J&amp;amp;uuml;rgen Lerner, and Denise van Raaij: [http://www.inf.uni-konstanz.de/algo/publications/bklv-cwen-09.pdf &#039;&#039;&#039;Computing Wikipedia Edit Networks&#039;&#039;&#039;]. Technical Report, 2009.&lt;br /&gt;
&lt;br /&gt;
The techniques for modeling conditional network event types are proposed in &lt;br /&gt;
* Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders: [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. Proc. 2009 Intl. Conf. Advances in Social Network Analysis and Mining (ASONAM 2009), pp.200-205. IEEE Computer Society, 2009.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Event_networks_(tutorial)&amp;diff=1681</id>
		<title>Event networks (tutorial)</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Event_networks_(tutorial)&amp;diff=1681"/>
		<updated>2018-12-18T09:23:04Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Statistical modeling of the conditional event type or weight */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Event_network_gulf_example.png|300px|thumb]]&lt;br /&gt;
The links in an &#039;&#039;&#039;event network&#039;&#039;&#039; encode time stamped interaction among actors, for instance, users sending emails to other users. There is an important difference to networks of &#039;&#039;relational states&#039;&#039; - such as friendship networks. To illustrate the difference, when two actors are friends of each other at some instant in time, then - &#039;&#039;if nothing happens in between&#039;&#039; - they are still friends in the very near future. In contrast, if someone sends and email to another person at some instant in time, then he/she does not necessarily send an email to the same person in the very next instant in time. Stated otherwise, relations like &#039;&#039;friendship&#039;&#039; have inertia (something has to happen to change them), while relational events mark time points of interaction.&lt;br /&gt;
&lt;br /&gt;
This tutorial is a practically oriented, example based, &amp;quot;how-to&amp;quot; guide illustrating the import, transformation, visualization, and analysis of event networks with visone. More background on event networks can be found in &lt;br /&gt;
* Carter T. Butts: [http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9531.2008.00203.x/full &#039;&#039;&#039;A Relational event framework for social action&#039;&#039;&#039;]. &#039;&#039;Sociological Methodology&#039;&#039; 38(1):155-200, 2008.&lt;br /&gt;
* Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders: [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. Proc. 2009 Intl. Conf. Advances in Social Network Analysis and Mining (ASONAM 2009), pp.200-205. IEEE Computer Society, 2009.&lt;br /&gt;
and in other papers linked in the [[Event_networks_(tutorial)#References|references]].&lt;br /&gt;
&lt;br /&gt;
The functionality for statistical analysis of event networks has been superseded by the [https://github.com/juergenlerner/eventnet &#039;&#039;&#039;event network analyzer (eventnet)&#039;&#039;&#039;]. However, visone can still be used for visual analysis of event networks.&lt;br /&gt;
&lt;br /&gt;
Please address questions and comments about this tutorial to me ([[User:Lerner|J&amp;amp;uuml;rgen Lerner]]).&lt;br /&gt;
&lt;br /&gt;
== Example data: networks of political conflict and cooperation ==&lt;br /&gt;
&lt;br /&gt;
This tutorial uses for illustration networks of events among political actors that have been collected by the [http://eventdata.psu.edu/ Penn State Event Data Project] (formerly &#039;&#039;Kansas Event Data System&#039;&#039;). Specifically, we use data encoding events in or around the Persian Gulf region in the time from 1979 to 1999. This data set is described in and linked from the page on [[Penn_State_Event_Data|&#039;&#039;&#039;Penn State Event Data&#039;&#039;&#039;]]. To follow the steps outlined in this tutorial you should download the file [[Media:Gulf_events_preprocessed.zip|Gulf_events_preprocessed.zip]].&lt;br /&gt;
&lt;br /&gt;
Another specific application area for event networks - using different example data - is treated in the [[Wikipedia_edit_networks_(tutorial)|tutorial on Wikipedia edit networks]].&lt;br /&gt;
&lt;br /&gt;
== Importing event networks ==&lt;br /&gt;
&lt;br /&gt;
visone can import event lists from comma-separted-value (CSV) files. These files must contain a header in the first line (giving the column labels) followed by any number of lines each of which encodes one event. For instance, some lines in the example file look like this.&lt;br /&gt;
  &amp;quot;WEIS.code&amp;quot;;&amp;quot;Time&amp;quot;;&amp;quot;Source&amp;quot;;&amp;quot;Target&amp;quot;;&amp;quot;Description&amp;quot;;&amp;quot;Goldstein.weight&amp;quot;;&amp;quot;Type&amp;quot;&lt;br /&gt;
  ...&lt;br /&gt;
  222;980213;&amp;quot;ISR&amp;quot;;&amp;quot;WES&amp;quot;;&amp;quot;NONMIL DESTR&amp;quot;;-8.7;&amp;quot;conflict&amp;quot;&lt;br /&gt;
  223;920717;&amp;quot;SYR&amp;quot;;&amp;quot;ISR&amp;quot;;&amp;quot;MIL ENGAGEME&amp;quot;;-10;&amp;quot;conflict&amp;quot;&lt;br /&gt;
  ...&lt;br /&gt;
To open such a file, click on &#039;&#039;&#039;open&#039;&#039;&#039; in the [[File_menu|&#039;&#039;&#039;file&#039;&#039;&#039; menu]], select &#039;&#039;&#039;files of type:&#039;&#039;&#039; &#039;&#039;event list files (.csv, .txt)&#039;&#039;, navigate to the file that you want to open, and click on &#039;&#039;&#039;ok&#039;&#039;&#039;. In the import options dialog (see below) you have to specify the character that separates the different entries in each line - this is the semicolon (&#039;&#039;&#039;;&#039;&#039;&#039;) in our example file - and a character enclosing text (if any) - this is the double quotes (&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;) in our example file.&lt;br /&gt;
&lt;br /&gt;
[[File:Import_options_event_list.png]]&lt;br /&gt;
&lt;br /&gt;
To find out the right settings you can look at the file tab in the import options dialog showing you part of the input file.&lt;br /&gt;
&lt;br /&gt;
visone can now read the various entries of the input file - and you have to specify how these should be mapped to the resulting network in the dialog &#039;&#039;&#039;EventNetwork specification&#039;&#039;&#039; (shown below). Concretely you have to specify how the various components of an event are encoded in the file (&#039;&#039;Event format&#039;&#039; tab); how to iterate over the network sequence (&#039;&#039;Event iterator&#039;&#039; tab); how the events are mapped to the network&#039;s link attributes (&#039;&#039;Event network&#039;&#039; tab); and, if desired, which statistics should be computed while constructing the event network (&#039;&#039;Eventnet statistics&#039;&#039; tab). The tabs should be filled out in the order as they are numbered in the dialog since choice-possibilities for the latter tabs depend on previous settings. If you make changes in some tab you have to subsequently set (again) the values for the latter tabs.&lt;br /&gt;
&lt;br /&gt;
=== Event format ===&lt;br /&gt;
&lt;br /&gt;
In the event format tab (see the image below) you first have to specify which columns of the input file hold the information about the five components of an event (these are &#039;&#039;source&#039;&#039;, &#039;&#039;target&#039;&#039;, &#039;&#039;time&#039;&#039;, &#039;&#039;type&#039;&#039;, and &#039;&#039;weight&#039;&#039;). In our example, you can set the values as in the image below. The meaning of the five components is explained in the following.&lt;br /&gt;
*&#039;&#039;&#039;SOURCE&#039;&#039;&#039; The source actor is the one who initiates the event. &lt;br /&gt;
*&#039;&#039;&#039;TARGET&#039;&#039;&#039; The target actor is the one who receives the event.&lt;br /&gt;
*&#039;&#039;&#039;TIME&#039;&#039;&#039;  The time denotes when the event happened. visone supports a wide range of time encodings - from numeric times to strings representing calendar date and time in more common or less common formats. Furthermore, a time unit can be specified that defines the precision of the time variable.&lt;br /&gt;
*&#039;&#039;&#039;TYPE&#039;&#039;&#039; The event type is a categorical variable specifying what happened. In our example, there are different choices for event types. One possibility is the rather coarse distinction between cooperative (positive) and conflictive (negative) events. The other possibility is to distinguish between all more than 100 different WEIS event types. An intermediate possibility (and that&#039;s what we are going to do in the following) is to use just the distinction between conflict and cooperation but to distinguish quantitatively between &amp;quot;strong&amp;quot; events and &amp;quot;weak&amp;quot; events by the event weight. For instance, the use of military force is counted more seriously than a warning - even though both are conflictive events.&lt;br /&gt;
*&#039;&#039;&#039;WEIGHT&#039;&#039;&#039; The event weight is a numeric variable quantifying the &#039;&#039;intensity&#039;&#039; of the event with respect to the event type (see the example above). For instance, &#039;&#039;military engagement&#039;&#039; has a weight of -10.0 while warnings have a weight of -3.0.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_format_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
After these five components have been chosen visone needs some information about the interpretation of time. The first choice is the selection between &#039;&#039;&#039;numeric time&#039;&#039;&#039; (if the time fields correspond to integer numbers) or &#039;&#039;&#039;calendar time&#039;&#039;&#039; (if time fields can somehow, specified below, be turned into a date/time). We have calendar time in our example.&lt;br /&gt;
&lt;br /&gt;
If time is given by calendar, a &#039;&#039;&#039;time format pattern&#039;&#039;&#039; has to be specified. visone proposes some known pattern - among others the pattern &#039;&#039;&#039;yyMMdd&#039;&#039;&#039; which is appropriate for the KEDS event times. (This pattern implies that there are two digits for the year, followed by two digits for the month, followed by two digits for the day of the month; for instance, 940930 for September 30, 1994.) You can enter other than the proposed patterns in the textfield if date/time is formatted differently (see the webpage on the java class [http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html SimpleDateFormat] for guidance). visone assists you in finding the right pattern by showing some date/time strings as they appear in the file and - whenever you select a date format pattern - the dialog shows you the current time formatted by the specified pattern.&lt;br /&gt;
&lt;br /&gt;
Finally, you have to specify a &#039;&#039;&#039;time unit&#039;&#039;&#039;. If time is numeric you have to enter an integer in the textfield. If time is given by calendar you can select a &amp;quot;natural&amp;quot; time unit from &#039;&#039;Millisecond&#039;&#039; to &#039;&#039;Year&#039;&#039;. An appropriate time unit makes the iteration over the event sequence (and potentially the decay of link attributes over time) more intuitive. When computing event network statistics, events that happen within the same time unit are treated as independent of each other. The time of the KEDS events is given by the day. Thus, appropriate time units are &#039;&#039;&#039;DAY&#039;&#039;&#039; or coarser.&lt;br /&gt;
&lt;br /&gt;
Note that the only required information are the columns containing the source and target - for the other components you can take default values (by selecting &#039;&#039;&amp;lt;implied&amp;gt;&#039;&#039; instead of a column header). The default value for the event type is the string &#039;&#039;EVENT&#039;&#039; (taking this default type means that there is no variation in event types - all have the same type); the default weight is equal to 1.0; the default event time is the row number in the input file (so that only the order of events is taken into account).&lt;br /&gt;
&lt;br /&gt;
When all settings in the event format tab are done, you can create the list of events by clicking on the &#039;&#039;&#039;Apply (create events)&#039;&#039;&#039; button. A message informs about the number of events and the number of time units from the first to the last event. (The events are sorted in ascending order by time after reading them - thus, it is not necessary that the events are ordered by time in the input file.)&lt;br /&gt;
&lt;br /&gt;
=== Event iterator ===&lt;br /&gt;
&lt;br /&gt;
In the event iterator tab (see below) you have to specify the start and end time of the time interval to be processed and the delay between network snapshots.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_iterator_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
When the events have been created after filling out the event format tab (see the preceeding section) visone suggests as start time the time of the first event and as end time the time of the last event. If you don&#039;t want to process the whole event sequence you can increase the start time and/or decrease the end time. After clicking on the upper &#039;&#039;&#039;Apply / get info&#039;&#039;&#039; button, visone informs you about the number of events and time units in the specified subsequence. You might just take all events by not changing the interval borders; this includes all events from April 15, 1979 to March 31, 1999 - as can be seen in the dialog.&lt;br /&gt;
&lt;br /&gt;
Then you have to choose the time points when a network snapshot is to be created by specifying the delay between snapshots. You can see in the dialog that the event sequence spans more than 7,200 time units (i.e., days with the current settings) which is almost 20 years. The number of snapshots must be small (some 10 or 20 snapshots are ok), since they are all opened in a new tab in visone. When we want to create a snapshot once a year we specify &#039;&#039;create snapshots after every&#039;&#039; &#039;&#039;&#039;365&#039;&#039;&#039; &#039;&#039;time unit(s)&#039;&#039;. (The number of snapshots is then 20.) visone always creates one snapshot at the end of the event sequence - even if the waiting time is less than the specified number.&lt;br /&gt;
&lt;br /&gt;
=== Event network ===&lt;br /&gt;
&lt;br /&gt;
The tab to specify the event network is the most important one - here you define which &#039;&#039;&#039;link attributes&#039;&#039;&#039; of the event network summarize the past events, how events of various types add to these attributes, and how they change over time. &lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_network_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
The first thing to do is to decide on the link attributes. Here you are free to choose any attribute name (that makes it easy to remember the intuition of the attribute). Furthermore, a halftime - defining how fast attributes decay over time - has to be specified. The halftime has the following effect: when a particular link attribute on a particular dyad (pair or actors) has a value of &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; at time &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, then (if no event on the same dyad happens in between) the value is &amp;lt;math&amp;gt;x/2&amp;lt;/math&amp;gt; at time&lt;br /&gt;
&amp;lt;math&amp;gt;t+halftime&amp;lt;/math&amp;gt;. Intuitively, link attributes with a positive halftime capture &#039;&#039;recent interaction&#039;&#039;; if the halftime gets shorter then they capture even more recent interaction. A halftime equal to zero or negative indicates that the respective attribute does not decay over time; these attributes capture &#039;&#039;past interaction&#039;&#039; irrespective of the elapsed time.&lt;br /&gt;
&lt;br /&gt;
In our concrete example we choose the following link attributes that all have a halftime of (approximately) one year.&lt;br /&gt;
* An attribute &#039;&#039;&#039;cooperation&#039;&#039;&#039; sums up the weights of past cooperative events.&lt;br /&gt;
* The link attribute &#039;&#039;&#039;conflict&#039;&#039;&#039; is similar and sums up past conflictive events. This attribute will also be non-negative; that is, a higher value means more past/recent conflict. (See later how this is achieved.)&lt;br /&gt;
* &#039;&#039;&#039;Interaction&#039;&#039;&#039; sums up the strength of past events - irrespective of whether these are cooperative or conflictive.&lt;br /&gt;
* &#039;&#039;&#039;Interaction (unweighted)&#039;&#039;&#039; sums up the number of past events - irrespective of whether these are cooperative or conflictive and irrespective of their weight.&lt;br /&gt;
* Finally &#039;&#039;&#039;cooperation-conflict&#039;&#039;&#039; sums up the (positive) weights of cooperative events and the (negative) weights of conflictive events. This attribute is positive on dyads that have more cooperative events (or cooperative events with higher weights) and it is negative on dyads on which there are more conflictive events (or more serious conflictive events).&lt;br /&gt;
&lt;br /&gt;
When the link attributes are added (e.g., click on the &#039;&#039;&#039;Add / update all&#039;&#039;&#039; button) you have to specify how the events contribute to them. Clicking on &#039;&#039;&#039;Create weight-function table&#039;&#039;&#039; builds a table that has one row for each link attribute and one column for each event type. In the cell indexed by an attribute &amp;lt;math&amp;gt;attr&amp;lt;/math&amp;gt; and an event type &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; you specify the function mapping weights of events of type &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; to increments of the link attribute &amp;lt;math&amp;gt;attr&amp;lt;/math&amp;gt;. In our example, selecting the function &#039;&#039;Identity&#039;&#039; in the cell indexed by attribute &#039;&#039;cooperation&#039;&#039; and event type &#039;&#039;cooperation&#039;&#039; means that whenever an event of type &#039;&#039;cooperation&#039;&#039; and weight &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; happens then you add &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; to the current value of the &#039;&#039;cooperation&#039;&#039; attribute. If we had chosen &#039;&#039;SquareRoot&#039;&#039; as the weight function in the same cell, then we would add &amp;lt;math&amp;gt;\sqrt{w}&amp;lt;/math&amp;gt; to the &#039;&#039;cooperation&#039;&#039; attribute whenever an event of type &#039;&#039;cooperation&#039;&#039; and weight &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; happens. The weight-function identifier &#039;&#039;N/A&#039;&#039; means that events of that type do not cause any change of the respective attribute. For instance, events of type &#039;&#039;conflict&#039;&#039; do not change the attribute &#039;&#039;cooperation&#039;&#039;. Note that for the attribute &#039;&#039;conflict&#039;&#039; and the type &#039;&#039;conflict&#039;&#039; we choose the weight function &#039;&#039;MinusIdentity&#039;&#039;; thus, when a conflictive event with weight -10 happens we add the (positive) value 10 to the attribute &#039;&#039;conflict&#039;&#039; (thereby the &#039;&#039;conflict&#039;&#039; attribute is always non-negative and higher values indicate more past conflicts). The settings for all attributes and types can be seen in the above image.&lt;br /&gt;
&lt;br /&gt;
After these settings have been done you can create the snapshots by clicking on the button &#039;&#039;&#039;Process event network!&#039;&#039;&#039;. If you want to create a statistics table you first have to fill out the tab number 4. We turn to the statistics [[#Event_statistics|later]] and create the snapshots now.&lt;br /&gt;
&lt;br /&gt;
== Visualization and analysis of event networks ==&lt;br /&gt;
&lt;br /&gt;
With the above settings visone opens 20 network tabs. The nodes in the network have an attribute &#039;&#039;label&#039;&#039; that holds the names of the source or target nodes as they are given in the event list file. The links have (in our example) five numerical attributes encoding the values of the link attribute functions at the time of the snapshot. These link attributes allow to compute, for instance, the total amount of conflict or cooperation received or initialized by the actors (compute the indegree respectively outdegree with link strength set to &#039;&#039;conflict&#039;&#039; or &#039;&#039;cooperation&#039;&#039; or any other link attribute). These degrees can, for instance, be used for visual filtering by [[Visualization_tab|mapping]] the centrality values to size or color of the nodes or selecting nodes by importance. Examples for visualization of event networks can be found in the [[Wikipedia_edit_networks_(tutorial)|tutorial on Wikipedia edit networks]]. Note that all analysis and visualization tasks can be done in parallel for all open network tabs and note that visone also offers to compute a [[Visualization_tab#dynamic_layout|dynamic layout]] that can be animated; this is illustrated in the [[Collections_(tutorial)|tutorial on network collections]]. The image below is an example placing the most involved actors in the center of the drawing and coding rather cooperative ties in blue and rather conflictive ties in red.&lt;br /&gt;
&lt;br /&gt;
[[File:Event_network_gulf_example.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Statistical modeling of the conditional event type or weight ==&lt;br /&gt;
&lt;br /&gt;
While importing event networks it is possible to compute and save network statistics associated with dyadic events that can be used to build and estimate a statistical model for the &#039;&#039;&#039;conditional event type&#039;&#039;&#039;. Such models have been proposed in Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders (2009): [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. These models can be used to test whether the network of past events explains the likelihood that future events among a given pair of actors are rather cooperative or rather conflictive, for instance&lt;br /&gt;
* Do actors have a tendency to fight those that attacked them in the past? (Tendency to retalliate.)&lt;br /&gt;
* Do actors have a tendency to cooperated with the enemies of their enemies, to fight the friends of their enemies, etc?&lt;br /&gt;
&lt;br /&gt;
The event network statistics can be computed during importing the data, are saved in a file, and can then be analyzed with any statistical software, such as [http://www.r-project.org/ &#039;&#039;&#039;R&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
It is important to understand that with the statistics table computed by visone you can estimate a model for the &#039;&#039;&#039;conditional&#039;&#039;&#039; event type, given that an event happens, as this has been defined in Brandes et al.(2009). With the visone output you cannot model the likelihood that two actors interact at all. (Such models can be specified and fitted, for instance, with the R package [http://cran.r-project.org/web/packages/relevent/index.html &#039;&#039;&#039;relevent&#039;&#039;&#039;] or with the software [https://github.com/juergenlerner/eventnet &#039;&#039;&#039;event network analyzer (eventnet)&#039;&#039;&#039;], where in the latter you can choose whether or not to condition on the sources or targets or events.) More on the difference between modeling the conditional event type and the marginal (unconditional) event type can be found in the slides [[Media:Lerner_Sunbelt12.pdf|&#039;&#039;&#039;Modeling Frequency and Type of Interaction in Event Networks&#039;&#039;&#039; (.pdf)]].&lt;br /&gt;
&lt;br /&gt;
To make the analysis comparable to the one presented in Brandes et al.(2009), we modify the link attributes in the event network tab slightly (see below). Specifically we set the halftime to 30 days and include only the attributes &#039;&#039;conflict&#039;&#039; and &#039;&#039;cooperation&#039;&#039;. (The settings in the event format stay the same and in the event iterator tabs you may set the delay between snapshots to 7291 to create only one snapshot.)&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_network_KEDS30.png]]&lt;br /&gt;
&lt;br /&gt;
=== Event statistics ===&lt;br /&gt;
&lt;br /&gt;
The statistics to be computed are defined in the eventnet statistics tab of the import dialog (see below). You first have to specify whether a statistic table should be created at all; if yes an output file has to be chosen and one or more statistics have to be defined.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_statistics_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
The statistics are used to model events in the following way: whenever an event happens that is initiated by a &#039;&#039;&#039;source&#039;&#039;&#039; node and directed to a &#039;&#039;&#039;target&#039;&#039;&#039; node, then the dyad &#039;&#039;(source, target)&#039;&#039; is embedded in the network of past events, i.e., all events that happened before the current event. The event network statistics describe relevant aspects of this network of past events with respect to the specific dyad. visone offers three different types of statistics - dyad statistics, degree statistics, and triangle statistics - that can be varied with respect to edge direction and/or link attributes. After defining the statistics they have to be added to the event network by clicking on the &#039;&#039;&#039;Add / update&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
==== Dyad statistics ====&lt;br /&gt;
&lt;br /&gt;
Dyad statistics encode aspects of the past events from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; or in the other direction. That is the dyad statistics encode how &#039;&#039;source&#039;&#039; interacted with &#039;&#039;target&#039;&#039; in the past or how &#039;&#039;target&#039;&#039; interacted with &#039;&#039;source&#039;&#039;. In our exmple we define four different dyad statistics that are obtained by switching the direction (&#039;&#039;inertia&#039;&#039; if &#039;&#039;&#039;OUT&#039;&#039;&#039;-going events - from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; - are considered and &#039;&#039;reciprocity&#039;&#039; if &#039;&#039;&#039;IN&#039;&#039;&#039;-coming events - from &#039;&#039;target&#039;&#039; to &#039;&#039;source&#039;&#039; - are considered) and the link attribute (&#039;&#039;positive&#039;&#039; for past cooperation and &#039;&#039;negative&#039;&#039; for past conflict).&lt;br /&gt;
&lt;br /&gt;
Intuitively, if actors tend to retalliate, then we expect that the &#039;&#039;negative reciprocity&#039;&#039; statistic is negatively related with the weight of the next event.&lt;br /&gt;
&lt;br /&gt;
==== Degree statistics ====&lt;br /&gt;
&lt;br /&gt;
Degree statistics summarize the past events around the dyad &#039;&#039;(source, target)&#039;&#039; by the weighted (out-/in-) degree of &#039;&#039;source&#039;&#039; or &#039;&#039;target&#039;&#039;. The links can be weighted by any attribute. For instance, the &#039;&#039;neg_outdeg_source&#039;&#039; statistic adds up the values of the &#039;&#039;conflict&#039;&#039; attribute on all links starting at the &#039;&#039;source&#039;&#039; node (not only those that are directed to &#039;&#039;target&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Intuitively, if actors that initiated a lot of conflictive events in the past tend to do so in the future, then we expect a negative relation between the &#039;&#039;neg_outdeg_source&#039;&#039; statistic and the weight of events. &lt;br /&gt;
&lt;br /&gt;
==== Triangle statistics ====&lt;br /&gt;
&lt;br /&gt;
Triangle statistics summarize the network of past events around the dyad &#039;&#039;(source, target)&#039;&#039; by typed and weighted indirect relations from &#039;&#039;source&#039;&#039; over any third node to &#039;&#039;target&#039;&#039; or the other way round. You can select the attributes for the links attached to &#039;&#039;source&#039;&#039; and to &#039;&#039;target&#039;&#039; and the direction which can be &#039;&#039;&#039;OUT&#039;&#039;&#039; (only out-going ties with respect to &#039;&#039;source&#039;&#039;/&#039;&#039;target&#039;&#039;), &#039;&#039;&#039;IN&#039;&#039;&#039; (only in-coming ties), or &#039;&#039;&#039;SYM&#039;&#039;&#039; (adding up the attributes of out-going and in-coming ties). &lt;br /&gt;
&lt;br /&gt;
For instance, the statistic &#039;&#039;enemy_of_friend&#039;&#039; iterates over all actors &#039;&#039;A&#039;&#039; in the network, multiplies the value of the &#039;&#039;cooperation&#039;&#039; attribute on links connecting &#039;&#039;source&#039;&#039; and &#039;&#039;A&#039;&#039; (in both directions) with the value of the &#039;&#039;conflict&#039;&#039; attribute on links connecting &#039;&#039;target&#039;&#039; and &#039;&#039;A&#039;&#039; (in both directions), adds up these products for all &#039;&#039;A&#039;&#039;, and returns the square root of this sum. Intuitively, the value of the &#039;&#039;enemy_of_friend&#039;&#039; statistic on the dyad &#039;&#039;(source, target)&#039;&#039; is high if there are many other actors &#039;&#039;A&#039;&#039; that cooperated with &#039;&#039;source&#039;&#039; and were in conflict with &#039;&#039;target&#039;&#039;; structural balance theory predicts that &#039;&#039;source&#039;&#039; is then more likely to fight &#039;&#039;target&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Starting the computation ====&lt;br /&gt;
&lt;br /&gt;
Once the output file and the statistics are specified, click on the &#039;&#039;&#039;Process event network!&#039;&#039;&#039; button. Snapshots are created as defined in the event iterator tab and statistics are computed as defined in the eventnet statistics tab.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that statistics associated with an event that happens at time &#039;&#039;t&#039;&#039; are only a function of events that happend earlier (strictly before &#039;&#039;t&#039;&#039;) - and do not depend on events that happen in the same time unit.&lt;br /&gt;
&lt;br /&gt;
The computed eventnet statistics file (&#039;&#039;gulf_events_stats.csv&#039;&#039; in our example) is a table in CSV format in which each row corresponds to one event of the input file. The components of the event (source, target, time, type, and weight) are first repeated - followed by the values of all statistics.&lt;br /&gt;
&lt;br /&gt;
Computing the statistics for all 300,000 events may take some five to ten minutes on a current standard laptop. Once the computation is finished you see the message &#039;&#039;processing successfull&#039;&#039; in the eventnet dialog. If you get an error message you might have a look at the visone [[Console|console]] where you can get more information.&lt;br /&gt;
&lt;br /&gt;
=== Modeling the conditional event weight ===&lt;br /&gt;
&lt;br /&gt;
The statistics file can now be analyzed with any statistical software - we describe the following for the [http://www.r-project.org R environment for statistical computing] (also see the visone tutorial on the [[R_console_(tutorial)|R console]]).&lt;br /&gt;
&lt;br /&gt;
First set the R working directory to the directory where the statistics file is located, for instance &lt;br /&gt;
  setwd(&amp;quot;c:/juergen/projects/event_data/keds/Gulf/&amp;quot;)&lt;br /&gt;
To read the file into a table and see some summary statistics type&lt;br /&gt;
  eventnet.stats &amp;lt;- read.csv(&amp;quot;gulf_events_stats.csv&amp;quot;, sep=&amp;quot;;&amp;quot;)&lt;br /&gt;
  summary(eventnet.stats)&lt;br /&gt;
We model only those events that are not self-loops (loops could have been removed already while preprocessing the input event list - these two procedures are not equivalent since in our case statistics are also functions of loops).&lt;br /&gt;
  eventnet.stats &amp;lt;- eventnet.stats[as.character(eventnet.stats$SOURCE) != as.character(eventnet.stats$TARGET),]&lt;br /&gt;
  summary(eventnet.stats)&lt;br /&gt;
A first very simple model is a linear model for the event weigth (from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039;) - explained by the past conflictive events in the other direction (that is from &#039;&#039;target&#039;&#039; directed to the &#039;&#039;source&#039;&#039; node).&lt;br /&gt;
  model.1 &amp;lt;- lm(WEIGHT ~ 1 + negative_reciprocity, data = eventnet.stats)&lt;br /&gt;
  summary(model.1)&lt;br /&gt;
A summary of the estimated model yields (among others) the following output:&lt;br /&gt;
  Coefficients:&lt;br /&gt;
                         Estimate Std. Error t value Pr(&amp;gt;|t|)    &lt;br /&gt;
  (Intercept)          -5.730e-01  8.866e-03  -64.63   &amp;lt;2e-16 ***&lt;br /&gt;
  negative_reciprocity -2.629e-03  2.829e-05  -92.92   &amp;lt;2e-16 ***&lt;br /&gt;
  ---&lt;br /&gt;
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 &lt;br /&gt;
The interpretation is that there seems to be a habit of retalliation: if &#039;&#039;target&#039;&#039; has initiated conflictive events towards &#039;&#039;source&#039;&#039; then the weight of events from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; has a tendency to be smaller (significantly negative coefficient for the &#039;&#039;negative_reciprocity&#039;&#039; statistic) meaning that the event type is drawn towards conflict. The value of the coefficient (about -0.003) seems to be very small. However this parameter summarizes the change in the event weight when &#039;&#039;negative_reciprocity&#039;&#039; increases by one. Typing &lt;br /&gt;
  sd(eventnet.stats$negative_reciprocity)&lt;br /&gt;
we see that the standard deviation of this statistic is around 290 - meaning that the &#039;&#039;negative_reciprocity&#039;&#039; indicator typically varies in the hundreds.&lt;br /&gt;
&lt;br /&gt;
A more complex model tests for structural balance effects, controlling for variation in degrees and direct past interaction. (This is the model taken from Brandes et al.(2009).)&lt;br /&gt;
  model.2 &amp;lt;- lm(WEIGHT ~ 1 + positive_inertia + negative_inertia + &lt;br /&gt;
                         positive_reciprocity + negative_reciprocity + &lt;br /&gt;
                         pos_outdeg_source + neg_outdeg_source + &lt;br /&gt;
                         pos_indeg_source + neg_indeg_source + &lt;br /&gt;
                         pos_outdeg_target + neg_outdeg_target + &lt;br /&gt;
                         pos_indeg_target + neg_indeg_target +&lt;br /&gt;
                         friend_of_friend + friend_of_enemy + &lt;br /&gt;
                         enemy_of_friend + enemy_of_enemy, &lt;br /&gt;
                data = eventnet.stats)&lt;br /&gt;
We get the following results.&lt;br /&gt;
  Coefficients:&lt;br /&gt;
                         Estimate Std. Error t value Pr(&amp;gt;|t|)    &lt;br /&gt;
  (Intercept)          -7.707e-01  1.127e-02 -68.371  &amp;lt; 2e-16 ***&lt;br /&gt;
  positive_inertia      5.814e-03  2.723e-04  21.347  &amp;lt; 2e-16 ***&lt;br /&gt;
  negative_inertia     -2.145e-03  7.214e-05 -29.730  &amp;lt; 2e-16 ***&lt;br /&gt;
  positive_reciprocity  3.071e-03  3.125e-04   9.827  &amp;lt; 2e-16 ***&lt;br /&gt;
  negative_reciprocity -2.188e-03  8.175e-05 -26.768  &amp;lt; 2e-16 ***&lt;br /&gt;
  pos_outdeg_source     1.391e-03  6.853e-05  20.295  &amp;lt; 2e-16 ***&lt;br /&gt;
  neg_outdeg_source    -2.426e-04  3.250e-05  -7.463 8.48e-14 ***&lt;br /&gt;
  pos_indeg_source     -6.058e-04  1.022e-04  -5.930 3.02e-09 ***&lt;br /&gt;
  neg_indeg_source      1.028e-04  3.259e-05   3.153 0.001615 ** &lt;br /&gt;
  pos_outdeg_target     9.800e-04  7.372e-05  13.293  &amp;lt; 2e-16 ***&lt;br /&gt;
  neg_outdeg_target     2.142e-05  3.192e-05   0.671 0.502180    &lt;br /&gt;
  pos_indeg_target     -6.572e-04  9.495e-05  -6.922 4.48e-12 ***&lt;br /&gt;
  neg_indeg_target      6.988e-05  3.051e-05   2.290 0.022014 *  &lt;br /&gt;
  friend_of_friend      1.884e-03  5.349e-04   3.523 0.000427 ***&lt;br /&gt;
  friend_of_enemy      -8.913e-04  2.912e-04  -3.061 0.002205 ** &lt;br /&gt;
  enemy_of_friend      -1.308e-03  2.874e-04  -4.553 5.30e-06 ***&lt;br /&gt;
  enemy_of_enemy       -1.935e-04  1.532e-04  -1.263 0.206593    &lt;br /&gt;
  ---&lt;br /&gt;
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1&lt;br /&gt;
Among other results, this model provides evidence for some - but not all - hypotheses derived from structural balance theory: friends of friends tend to interact more cooperatively while friend of enemies as well as enemies of friends have a tendency to fight each other. On the other hand, the parameter associated with the &#039;&#039;enemy_of_enemy&#039;&#039; statistic is not significant. Note that the data set for fitting this model is different from the one taken in Brandes et al. (2009) since here we also included self-loops to compute the statistics (although events connecting an actor with itself have not been used when fitting the linear model).&lt;br /&gt;
&lt;br /&gt;
Obviously, modeling the event type or event weight as a stochastic function of the event network statistics is not restricted to linear models. Furthermore, if the model should control for actor-level or dyad-level covariates (such as the population size of a country or an indicator for whether two countries have a common border), these can be merged into the statistics table after processing of the event network.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Carter T. Butts: [http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9531.2008.00203.x/full &#039;&#039;&#039;A Relational event framework for social action&#039;&#039;&#039;]. &#039;&#039;Sociological Methodology&#039;&#039; 38(1):155-200, 2008.&lt;br /&gt;
* Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders: [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. Proc. 2009 Intl. Conf. Advances in Social Network Analysis and Mining (ASONAM 2009), pp.200-205. IEEE Computer Society, 2009.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Event_networks_(tutorial)&amp;diff=1680</id>
		<title>Event networks (tutorial)</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Event_networks_(tutorial)&amp;diff=1680"/>
		<updated>2018-12-18T09:22:02Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Event_network_gulf_example.png|300px|thumb]]&lt;br /&gt;
The links in an &#039;&#039;&#039;event network&#039;&#039;&#039; encode time stamped interaction among actors, for instance, users sending emails to other users. There is an important difference to networks of &#039;&#039;relational states&#039;&#039; - such as friendship networks. To illustrate the difference, when two actors are friends of each other at some instant in time, then - &#039;&#039;if nothing happens in between&#039;&#039; - they are still friends in the very near future. In contrast, if someone sends and email to another person at some instant in time, then he/she does not necessarily send an email to the same person in the very next instant in time. Stated otherwise, relations like &#039;&#039;friendship&#039;&#039; have inertia (something has to happen to change them), while relational events mark time points of interaction.&lt;br /&gt;
&lt;br /&gt;
This tutorial is a practically oriented, example based, &amp;quot;how-to&amp;quot; guide illustrating the import, transformation, visualization, and analysis of event networks with visone. More background on event networks can be found in &lt;br /&gt;
* Carter T. Butts: [http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9531.2008.00203.x/full &#039;&#039;&#039;A Relational event framework for social action&#039;&#039;&#039;]. &#039;&#039;Sociological Methodology&#039;&#039; 38(1):155-200, 2008.&lt;br /&gt;
* Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders: [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. Proc. 2009 Intl. Conf. Advances in Social Network Analysis and Mining (ASONAM 2009), pp.200-205. IEEE Computer Society, 2009.&lt;br /&gt;
and in other papers linked in the [[Event_networks_(tutorial)#References|references]].&lt;br /&gt;
&lt;br /&gt;
The functionality for statistical analysis of event networks has been superseded by the [https://github.com/juergenlerner/eventnet &#039;&#039;&#039;event network analyzer (eventnet)&#039;&#039;&#039;]. However, visone can still be used for visual analysis of event networks.&lt;br /&gt;
&lt;br /&gt;
Please address questions and comments about this tutorial to me ([[User:Lerner|J&amp;amp;uuml;rgen Lerner]]).&lt;br /&gt;
&lt;br /&gt;
== Example data: networks of political conflict and cooperation ==&lt;br /&gt;
&lt;br /&gt;
This tutorial uses for illustration networks of events among political actors that have been collected by the [http://eventdata.psu.edu/ Penn State Event Data Project] (formerly &#039;&#039;Kansas Event Data System&#039;&#039;). Specifically, we use data encoding events in or around the Persian Gulf region in the time from 1979 to 1999. This data set is described in and linked from the page on [[Penn_State_Event_Data|&#039;&#039;&#039;Penn State Event Data&#039;&#039;&#039;]]. To follow the steps outlined in this tutorial you should download the file [[Media:Gulf_events_preprocessed.zip|Gulf_events_preprocessed.zip]].&lt;br /&gt;
&lt;br /&gt;
Another specific application area for event networks - using different example data - is treated in the [[Wikipedia_edit_networks_(tutorial)|tutorial on Wikipedia edit networks]].&lt;br /&gt;
&lt;br /&gt;
== Importing event networks ==&lt;br /&gt;
&lt;br /&gt;
visone can import event lists from comma-separted-value (CSV) files. These files must contain a header in the first line (giving the column labels) followed by any number of lines each of which encodes one event. For instance, some lines in the example file look like this.&lt;br /&gt;
  &amp;quot;WEIS.code&amp;quot;;&amp;quot;Time&amp;quot;;&amp;quot;Source&amp;quot;;&amp;quot;Target&amp;quot;;&amp;quot;Description&amp;quot;;&amp;quot;Goldstein.weight&amp;quot;;&amp;quot;Type&amp;quot;&lt;br /&gt;
  ...&lt;br /&gt;
  222;980213;&amp;quot;ISR&amp;quot;;&amp;quot;WES&amp;quot;;&amp;quot;NONMIL DESTR&amp;quot;;-8.7;&amp;quot;conflict&amp;quot;&lt;br /&gt;
  223;920717;&amp;quot;SYR&amp;quot;;&amp;quot;ISR&amp;quot;;&amp;quot;MIL ENGAGEME&amp;quot;;-10;&amp;quot;conflict&amp;quot;&lt;br /&gt;
  ...&lt;br /&gt;
To open such a file, click on &#039;&#039;&#039;open&#039;&#039;&#039; in the [[File_menu|&#039;&#039;&#039;file&#039;&#039;&#039; menu]], select &#039;&#039;&#039;files of type:&#039;&#039;&#039; &#039;&#039;event list files (.csv, .txt)&#039;&#039;, navigate to the file that you want to open, and click on &#039;&#039;&#039;ok&#039;&#039;&#039;. In the import options dialog (see below) you have to specify the character that separates the different entries in each line - this is the semicolon (&#039;&#039;&#039;;&#039;&#039;&#039;) in our example file - and a character enclosing text (if any) - this is the double quotes (&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;) in our example file.&lt;br /&gt;
&lt;br /&gt;
[[File:Import_options_event_list.png]]&lt;br /&gt;
&lt;br /&gt;
To find out the right settings you can look at the file tab in the import options dialog showing you part of the input file.&lt;br /&gt;
&lt;br /&gt;
visone can now read the various entries of the input file - and you have to specify how these should be mapped to the resulting network in the dialog &#039;&#039;&#039;EventNetwork specification&#039;&#039;&#039; (shown below). Concretely you have to specify how the various components of an event are encoded in the file (&#039;&#039;Event format&#039;&#039; tab); how to iterate over the network sequence (&#039;&#039;Event iterator&#039;&#039; tab); how the events are mapped to the network&#039;s link attributes (&#039;&#039;Event network&#039;&#039; tab); and, if desired, which statistics should be computed while constructing the event network (&#039;&#039;Eventnet statistics&#039;&#039; tab). The tabs should be filled out in the order as they are numbered in the dialog since choice-possibilities for the latter tabs depend on previous settings. If you make changes in some tab you have to subsequently set (again) the values for the latter tabs.&lt;br /&gt;
&lt;br /&gt;
=== Event format ===&lt;br /&gt;
&lt;br /&gt;
In the event format tab (see the image below) you first have to specify which columns of the input file hold the information about the five components of an event (these are &#039;&#039;source&#039;&#039;, &#039;&#039;target&#039;&#039;, &#039;&#039;time&#039;&#039;, &#039;&#039;type&#039;&#039;, and &#039;&#039;weight&#039;&#039;). In our example, you can set the values as in the image below. The meaning of the five components is explained in the following.&lt;br /&gt;
*&#039;&#039;&#039;SOURCE&#039;&#039;&#039; The source actor is the one who initiates the event. &lt;br /&gt;
*&#039;&#039;&#039;TARGET&#039;&#039;&#039; The target actor is the one who receives the event.&lt;br /&gt;
*&#039;&#039;&#039;TIME&#039;&#039;&#039;  The time denotes when the event happened. visone supports a wide range of time encodings - from numeric times to strings representing calendar date and time in more common or less common formats. Furthermore, a time unit can be specified that defines the precision of the time variable.&lt;br /&gt;
*&#039;&#039;&#039;TYPE&#039;&#039;&#039; The event type is a categorical variable specifying what happened. In our example, there are different choices for event types. One possibility is the rather coarse distinction between cooperative (positive) and conflictive (negative) events. The other possibility is to distinguish between all more than 100 different WEIS event types. An intermediate possibility (and that&#039;s what we are going to do in the following) is to use just the distinction between conflict and cooperation but to distinguish quantitatively between &amp;quot;strong&amp;quot; events and &amp;quot;weak&amp;quot; events by the event weight. For instance, the use of military force is counted more seriously than a warning - even though both are conflictive events.&lt;br /&gt;
*&#039;&#039;&#039;WEIGHT&#039;&#039;&#039; The event weight is a numeric variable quantifying the &#039;&#039;intensity&#039;&#039; of the event with respect to the event type (see the example above). For instance, &#039;&#039;military engagement&#039;&#039; has a weight of -10.0 while warnings have a weight of -3.0.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_format_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
After these five components have been chosen visone needs some information about the interpretation of time. The first choice is the selection between &#039;&#039;&#039;numeric time&#039;&#039;&#039; (if the time fields correspond to integer numbers) or &#039;&#039;&#039;calendar time&#039;&#039;&#039; (if time fields can somehow, specified below, be turned into a date/time). We have calendar time in our example.&lt;br /&gt;
&lt;br /&gt;
If time is given by calendar, a &#039;&#039;&#039;time format pattern&#039;&#039;&#039; has to be specified. visone proposes some known pattern - among others the pattern &#039;&#039;&#039;yyMMdd&#039;&#039;&#039; which is appropriate for the KEDS event times. (This pattern implies that there are two digits for the year, followed by two digits for the month, followed by two digits for the day of the month; for instance, 940930 for September 30, 1994.) You can enter other than the proposed patterns in the textfield if date/time is formatted differently (see the webpage on the java class [http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html SimpleDateFormat] for guidance). visone assists you in finding the right pattern by showing some date/time strings as they appear in the file and - whenever you select a date format pattern - the dialog shows you the current time formatted by the specified pattern.&lt;br /&gt;
&lt;br /&gt;
Finally, you have to specify a &#039;&#039;&#039;time unit&#039;&#039;&#039;. If time is numeric you have to enter an integer in the textfield. If time is given by calendar you can select a &amp;quot;natural&amp;quot; time unit from &#039;&#039;Millisecond&#039;&#039; to &#039;&#039;Year&#039;&#039;. An appropriate time unit makes the iteration over the event sequence (and potentially the decay of link attributes over time) more intuitive. When computing event network statistics, events that happen within the same time unit are treated as independent of each other. The time of the KEDS events is given by the day. Thus, appropriate time units are &#039;&#039;&#039;DAY&#039;&#039;&#039; or coarser.&lt;br /&gt;
&lt;br /&gt;
Note that the only required information are the columns containing the source and target - for the other components you can take default values (by selecting &#039;&#039;&amp;lt;implied&amp;gt;&#039;&#039; instead of a column header). The default value for the event type is the string &#039;&#039;EVENT&#039;&#039; (taking this default type means that there is no variation in event types - all have the same type); the default weight is equal to 1.0; the default event time is the row number in the input file (so that only the order of events is taken into account).&lt;br /&gt;
&lt;br /&gt;
When all settings in the event format tab are done, you can create the list of events by clicking on the &#039;&#039;&#039;Apply (create events)&#039;&#039;&#039; button. A message informs about the number of events and the number of time units from the first to the last event. (The events are sorted in ascending order by time after reading them - thus, it is not necessary that the events are ordered by time in the input file.)&lt;br /&gt;
&lt;br /&gt;
=== Event iterator ===&lt;br /&gt;
&lt;br /&gt;
In the event iterator tab (see below) you have to specify the start and end time of the time interval to be processed and the delay between network snapshots.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_iterator_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
When the events have been created after filling out the event format tab (see the preceeding section) visone suggests as start time the time of the first event and as end time the time of the last event. If you don&#039;t want to process the whole event sequence you can increase the start time and/or decrease the end time. After clicking on the upper &#039;&#039;&#039;Apply / get info&#039;&#039;&#039; button, visone informs you about the number of events and time units in the specified subsequence. You might just take all events by not changing the interval borders; this includes all events from April 15, 1979 to March 31, 1999 - as can be seen in the dialog.&lt;br /&gt;
&lt;br /&gt;
Then you have to choose the time points when a network snapshot is to be created by specifying the delay between snapshots. You can see in the dialog that the event sequence spans more than 7,200 time units (i.e., days with the current settings) which is almost 20 years. The number of snapshots must be small (some 10 or 20 snapshots are ok), since they are all opened in a new tab in visone. When we want to create a snapshot once a year we specify &#039;&#039;create snapshots after every&#039;&#039; &#039;&#039;&#039;365&#039;&#039;&#039; &#039;&#039;time unit(s)&#039;&#039;. (The number of snapshots is then 20.) visone always creates one snapshot at the end of the event sequence - even if the waiting time is less than the specified number.&lt;br /&gt;
&lt;br /&gt;
=== Event network ===&lt;br /&gt;
&lt;br /&gt;
The tab to specify the event network is the most important one - here you define which &#039;&#039;&#039;link attributes&#039;&#039;&#039; of the event network summarize the past events, how events of various types add to these attributes, and how they change over time. &lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_network_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
The first thing to do is to decide on the link attributes. Here you are free to choose any attribute name (that makes it easy to remember the intuition of the attribute). Furthermore, a halftime - defining how fast attributes decay over time - has to be specified. The halftime has the following effect: when a particular link attribute on a particular dyad (pair or actors) has a value of &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; at time &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, then (if no event on the same dyad happens in between) the value is &amp;lt;math&amp;gt;x/2&amp;lt;/math&amp;gt; at time&lt;br /&gt;
&amp;lt;math&amp;gt;t+halftime&amp;lt;/math&amp;gt;. Intuitively, link attributes with a positive halftime capture &#039;&#039;recent interaction&#039;&#039;; if the halftime gets shorter then they capture even more recent interaction. A halftime equal to zero or negative indicates that the respective attribute does not decay over time; these attributes capture &#039;&#039;past interaction&#039;&#039; irrespective of the elapsed time.&lt;br /&gt;
&lt;br /&gt;
In our concrete example we choose the following link attributes that all have a halftime of (approximately) one year.&lt;br /&gt;
* An attribute &#039;&#039;&#039;cooperation&#039;&#039;&#039; sums up the weights of past cooperative events.&lt;br /&gt;
* The link attribute &#039;&#039;&#039;conflict&#039;&#039;&#039; is similar and sums up past conflictive events. This attribute will also be non-negative; that is, a higher value means more past/recent conflict. (See later how this is achieved.)&lt;br /&gt;
* &#039;&#039;&#039;Interaction&#039;&#039;&#039; sums up the strength of past events - irrespective of whether these are cooperative or conflictive.&lt;br /&gt;
* &#039;&#039;&#039;Interaction (unweighted)&#039;&#039;&#039; sums up the number of past events - irrespective of whether these are cooperative or conflictive and irrespective of their weight.&lt;br /&gt;
* Finally &#039;&#039;&#039;cooperation-conflict&#039;&#039;&#039; sums up the (positive) weights of cooperative events and the (negative) weights of conflictive events. This attribute is positive on dyads that have more cooperative events (or cooperative events with higher weights) and it is negative on dyads on which there are more conflictive events (or more serious conflictive events).&lt;br /&gt;
&lt;br /&gt;
When the link attributes are added (e.g., click on the &#039;&#039;&#039;Add / update all&#039;&#039;&#039; button) you have to specify how the events contribute to them. Clicking on &#039;&#039;&#039;Create weight-function table&#039;&#039;&#039; builds a table that has one row for each link attribute and one column for each event type. In the cell indexed by an attribute &amp;lt;math&amp;gt;attr&amp;lt;/math&amp;gt; and an event type &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; you specify the function mapping weights of events of type &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; to increments of the link attribute &amp;lt;math&amp;gt;attr&amp;lt;/math&amp;gt;. In our example, selecting the function &#039;&#039;Identity&#039;&#039; in the cell indexed by attribute &#039;&#039;cooperation&#039;&#039; and event type &#039;&#039;cooperation&#039;&#039; means that whenever an event of type &#039;&#039;cooperation&#039;&#039; and weight &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; happens then you add &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; to the current value of the &#039;&#039;cooperation&#039;&#039; attribute. If we had chosen &#039;&#039;SquareRoot&#039;&#039; as the weight function in the same cell, then we would add &amp;lt;math&amp;gt;\sqrt{w}&amp;lt;/math&amp;gt; to the &#039;&#039;cooperation&#039;&#039; attribute whenever an event of type &#039;&#039;cooperation&#039;&#039; and weight &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; happens. The weight-function identifier &#039;&#039;N/A&#039;&#039; means that events of that type do not cause any change of the respective attribute. For instance, events of type &#039;&#039;conflict&#039;&#039; do not change the attribute &#039;&#039;cooperation&#039;&#039;. Note that for the attribute &#039;&#039;conflict&#039;&#039; and the type &#039;&#039;conflict&#039;&#039; we choose the weight function &#039;&#039;MinusIdentity&#039;&#039;; thus, when a conflictive event with weight -10 happens we add the (positive) value 10 to the attribute &#039;&#039;conflict&#039;&#039; (thereby the &#039;&#039;conflict&#039;&#039; attribute is always non-negative and higher values indicate more past conflicts). The settings for all attributes and types can be seen in the above image.&lt;br /&gt;
&lt;br /&gt;
After these settings have been done you can create the snapshots by clicking on the button &#039;&#039;&#039;Process event network!&#039;&#039;&#039;. If you want to create a statistics table you first have to fill out the tab number 4. We turn to the statistics [[#Event_statistics|later]] and create the snapshots now.&lt;br /&gt;
&lt;br /&gt;
== Visualization and analysis of event networks ==&lt;br /&gt;
&lt;br /&gt;
With the above settings visone opens 20 network tabs. The nodes in the network have an attribute &#039;&#039;label&#039;&#039; that holds the names of the source or target nodes as they are given in the event list file. The links have (in our example) five numerical attributes encoding the values of the link attribute functions at the time of the snapshot. These link attributes allow to compute, for instance, the total amount of conflict or cooperation received or initialized by the actors (compute the indegree respectively outdegree with link strength set to &#039;&#039;conflict&#039;&#039; or &#039;&#039;cooperation&#039;&#039; or any other link attribute). These degrees can, for instance, be used for visual filtering by [[Visualization_tab|mapping]] the centrality values to size or color of the nodes or selecting nodes by importance. Examples for visualization of event networks can be found in the [[Wikipedia_edit_networks_(tutorial)|tutorial on Wikipedia edit networks]]. Note that all analysis and visualization tasks can be done in parallel for all open network tabs and note that visone also offers to compute a [[Visualization_tab#dynamic_layout|dynamic layout]] that can be animated; this is illustrated in the [[Collections_(tutorial)|tutorial on network collections]]. The image below is an example placing the most involved actors in the center of the drawing and coding rather cooperative ties in blue and rather conflictive ties in red.&lt;br /&gt;
&lt;br /&gt;
[[File:Event_network_gulf_example.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Statistical modeling of the conditional event type or weight ==&lt;br /&gt;
&lt;br /&gt;
While importing event networks it is possible to compute and save network statistics associated with dyadic events that can be used to build and estimate a statistical model for the &#039;&#039;&#039;conditional event type&#039;&#039;&#039;. Such models have been proposed in Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders (2009): [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. These models can be used to test whether the network of past events explains the likelihood that future events among a given pair of actors are rather cooperative or rather conflictive, for instance&lt;br /&gt;
* Do actors have a tendency to fight those that attacked them in the past? (Tendency to retalliate.)&lt;br /&gt;
* Do actors have a tendency to cooperated with the enemies of their enemies, to fight the friends of their enemies, etc?&lt;br /&gt;
&lt;br /&gt;
The event network statistics can be computed during importing the data, are saved in a file, and can then be analyzed with any statistical software, such as [http://www.r-project.org/ &#039;&#039;&#039;R&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
It is important to understand that with the statistics table computed by visone you can estimate a model for the &#039;&#039;&#039;conditional&#039;&#039;&#039; event type, given that an event happens, as this has been defined in Brandes et al.(2009). With the visone output you cannot model the likelihood that two actors interact at all. (Such models can be specified and fitted, for instance, with the R package [http://cran.r-project.org/web/packages/relevent/index.html &#039;&#039;&#039;relevent&#039;&#039;&#039;] or with the software [http://algo.uni-konstanz.de/software/eventnet/ &#039;&#039;&#039;event network analyzer (eventnet)&#039;&#039;&#039;], where in the latter you can choose whether or not to condition on the sources or targets or events.) More on the difference between modeling the conditional event type and the marginal (unconditional) event type can be found in the slides [[Media:Lerner_Sunbelt12.pdf|&#039;&#039;&#039;Modeling Frequency and Type of Interaction in Event Networks&#039;&#039;&#039; (.pdf)]].&lt;br /&gt;
&lt;br /&gt;
To make the analysis comparable to the one presented in Brandes et al.(2009), we modify the link attributes in the event network tab slightly (see below). Specifically we set the halftime to 30 days and include only the attributes &#039;&#039;conflict&#039;&#039; and &#039;&#039;cooperation&#039;&#039;. (The settings in the event format stay the same and in the event iterator tabs you may set the delay between snapshots to 7291 to create only one snapshot.)&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_network_KEDS30.png]]&lt;br /&gt;
&lt;br /&gt;
=== Event statistics ===&lt;br /&gt;
&lt;br /&gt;
The statistics to be computed are defined in the eventnet statistics tab of the import dialog (see below). You first have to specify whether a statistic table should be created at all; if yes an output file has to be chosen and one or more statistics have to be defined.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_statistics_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
The statistics are used to model events in the following way: whenever an event happens that is initiated by a &#039;&#039;&#039;source&#039;&#039;&#039; node and directed to a &#039;&#039;&#039;target&#039;&#039;&#039; node, then the dyad &#039;&#039;(source, target)&#039;&#039; is embedded in the network of past events, i.e., all events that happened before the current event. The event network statistics describe relevant aspects of this network of past events with respect to the specific dyad. visone offers three different types of statistics - dyad statistics, degree statistics, and triangle statistics - that can be varied with respect to edge direction and/or link attributes. After defining the statistics they have to be added to the event network by clicking on the &#039;&#039;&#039;Add / update&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
==== Dyad statistics ====&lt;br /&gt;
&lt;br /&gt;
Dyad statistics encode aspects of the past events from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; or in the other direction. That is the dyad statistics encode how &#039;&#039;source&#039;&#039; interacted with &#039;&#039;target&#039;&#039; in the past or how &#039;&#039;target&#039;&#039; interacted with &#039;&#039;source&#039;&#039;. In our exmple we define four different dyad statistics that are obtained by switching the direction (&#039;&#039;inertia&#039;&#039; if &#039;&#039;&#039;OUT&#039;&#039;&#039;-going events - from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; - are considered and &#039;&#039;reciprocity&#039;&#039; if &#039;&#039;&#039;IN&#039;&#039;&#039;-coming events - from &#039;&#039;target&#039;&#039; to &#039;&#039;source&#039;&#039; - are considered) and the link attribute (&#039;&#039;positive&#039;&#039; for past cooperation and &#039;&#039;negative&#039;&#039; for past conflict).&lt;br /&gt;
&lt;br /&gt;
Intuitively, if actors tend to retalliate, then we expect that the &#039;&#039;negative reciprocity&#039;&#039; statistic is negatively related with the weight of the next event.&lt;br /&gt;
&lt;br /&gt;
==== Degree statistics ====&lt;br /&gt;
&lt;br /&gt;
Degree statistics summarize the past events around the dyad &#039;&#039;(source, target)&#039;&#039; by the weighted (out-/in-) degree of &#039;&#039;source&#039;&#039; or &#039;&#039;target&#039;&#039;. The links can be weighted by any attribute. For instance, the &#039;&#039;neg_outdeg_source&#039;&#039; statistic adds up the values of the &#039;&#039;conflict&#039;&#039; attribute on all links starting at the &#039;&#039;source&#039;&#039; node (not only those that are directed to &#039;&#039;target&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Intuitively, if actors that initiated a lot of conflictive events in the past tend to do so in the future, then we expect a negative relation between the &#039;&#039;neg_outdeg_source&#039;&#039; statistic and the weight of events. &lt;br /&gt;
&lt;br /&gt;
==== Triangle statistics ====&lt;br /&gt;
&lt;br /&gt;
Triangle statistics summarize the network of past events around the dyad &#039;&#039;(source, target)&#039;&#039; by typed and weighted indirect relations from &#039;&#039;source&#039;&#039; over any third node to &#039;&#039;target&#039;&#039; or the other way round. You can select the attributes for the links attached to &#039;&#039;source&#039;&#039; and to &#039;&#039;target&#039;&#039; and the direction which can be &#039;&#039;&#039;OUT&#039;&#039;&#039; (only out-going ties with respect to &#039;&#039;source&#039;&#039;/&#039;&#039;target&#039;&#039;), &#039;&#039;&#039;IN&#039;&#039;&#039; (only in-coming ties), or &#039;&#039;&#039;SYM&#039;&#039;&#039; (adding up the attributes of out-going and in-coming ties). &lt;br /&gt;
&lt;br /&gt;
For instance, the statistic &#039;&#039;enemy_of_friend&#039;&#039; iterates over all actors &#039;&#039;A&#039;&#039; in the network, multiplies the value of the &#039;&#039;cooperation&#039;&#039; attribute on links connecting &#039;&#039;source&#039;&#039; and &#039;&#039;A&#039;&#039; (in both directions) with the value of the &#039;&#039;conflict&#039;&#039; attribute on links connecting &#039;&#039;target&#039;&#039; and &#039;&#039;A&#039;&#039; (in both directions), adds up these products for all &#039;&#039;A&#039;&#039;, and returns the square root of this sum. Intuitively, the value of the &#039;&#039;enemy_of_friend&#039;&#039; statistic on the dyad &#039;&#039;(source, target)&#039;&#039; is high if there are many other actors &#039;&#039;A&#039;&#039; that cooperated with &#039;&#039;source&#039;&#039; and were in conflict with &#039;&#039;target&#039;&#039;; structural balance theory predicts that &#039;&#039;source&#039;&#039; is then more likely to fight &#039;&#039;target&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Starting the computation ====&lt;br /&gt;
&lt;br /&gt;
Once the output file and the statistics are specified, click on the &#039;&#039;&#039;Process event network!&#039;&#039;&#039; button. Snapshots are created as defined in the event iterator tab and statistics are computed as defined in the eventnet statistics tab.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that statistics associated with an event that happens at time &#039;&#039;t&#039;&#039; are only a function of events that happend earlier (strictly before &#039;&#039;t&#039;&#039;) - and do not depend on events that happen in the same time unit.&lt;br /&gt;
&lt;br /&gt;
The computed eventnet statistics file (&#039;&#039;gulf_events_stats.csv&#039;&#039; in our example) is a table in CSV format in which each row corresponds to one event of the input file. The components of the event (source, target, time, type, and weight) are first repeated - followed by the values of all statistics.&lt;br /&gt;
&lt;br /&gt;
Computing the statistics for all 300,000 events may take some five to ten minutes on a current standard laptop. Once the computation is finished you see the message &#039;&#039;processing successfull&#039;&#039; in the eventnet dialog. If you get an error message you might have a look at the visone [[Console|console]] where you can get more information.&lt;br /&gt;
&lt;br /&gt;
=== Modeling the conditional event weight ===&lt;br /&gt;
&lt;br /&gt;
The statistics file can now be analyzed with any statistical software - we describe the following for the [http://www.r-project.org R environment for statistical computing] (also see the visone tutorial on the [[R_console_(tutorial)|R console]]).&lt;br /&gt;
&lt;br /&gt;
First set the R working directory to the directory where the statistics file is located, for instance &lt;br /&gt;
  setwd(&amp;quot;c:/juergen/projects/event_data/keds/Gulf/&amp;quot;)&lt;br /&gt;
To read the file into a table and see some summary statistics type&lt;br /&gt;
  eventnet.stats &amp;lt;- read.csv(&amp;quot;gulf_events_stats.csv&amp;quot;, sep=&amp;quot;;&amp;quot;)&lt;br /&gt;
  summary(eventnet.stats)&lt;br /&gt;
We model only those events that are not self-loops (loops could have been removed already while preprocessing the input event list - these two procedures are not equivalent since in our case statistics are also functions of loops).&lt;br /&gt;
  eventnet.stats &amp;lt;- eventnet.stats[as.character(eventnet.stats$SOURCE) != as.character(eventnet.stats$TARGET),]&lt;br /&gt;
  summary(eventnet.stats)&lt;br /&gt;
A first very simple model is a linear model for the event weigth (from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039;) - explained by the past conflictive events in the other direction (that is from &#039;&#039;target&#039;&#039; directed to the &#039;&#039;source&#039;&#039; node).&lt;br /&gt;
  model.1 &amp;lt;- lm(WEIGHT ~ 1 + negative_reciprocity, data = eventnet.stats)&lt;br /&gt;
  summary(model.1)&lt;br /&gt;
A summary of the estimated model yields (among others) the following output:&lt;br /&gt;
  Coefficients:&lt;br /&gt;
                         Estimate Std. Error t value Pr(&amp;gt;|t|)    &lt;br /&gt;
  (Intercept)          -5.730e-01  8.866e-03  -64.63   &amp;lt;2e-16 ***&lt;br /&gt;
  negative_reciprocity -2.629e-03  2.829e-05  -92.92   &amp;lt;2e-16 ***&lt;br /&gt;
  ---&lt;br /&gt;
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 &lt;br /&gt;
The interpretation is that there seems to be a habit of retalliation: if &#039;&#039;target&#039;&#039; has initiated conflictive events towards &#039;&#039;source&#039;&#039; then the weight of events from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; has a tendency to be smaller (significantly negative coefficient for the &#039;&#039;negative_reciprocity&#039;&#039; statistic) meaning that the event type is drawn towards conflict. The value of the coefficient (about -0.003) seems to be very small. However this parameter summarizes the change in the event weight when &#039;&#039;negative_reciprocity&#039;&#039; increases by one. Typing &lt;br /&gt;
  sd(eventnet.stats$negative_reciprocity)&lt;br /&gt;
we see that the standard deviation of this statistic is around 290 - meaning that the &#039;&#039;negative_reciprocity&#039;&#039; indicator typically varies in the hundreds.&lt;br /&gt;
&lt;br /&gt;
A more complex model tests for structural balance effects, controlling for variation in degrees and direct past interaction. (This is the model taken from Brandes et al.(2009).)&lt;br /&gt;
  model.2 &amp;lt;- lm(WEIGHT ~ 1 + positive_inertia + negative_inertia + &lt;br /&gt;
                         positive_reciprocity + negative_reciprocity + &lt;br /&gt;
                         pos_outdeg_source + neg_outdeg_source + &lt;br /&gt;
                         pos_indeg_source + neg_indeg_source + &lt;br /&gt;
                         pos_outdeg_target + neg_outdeg_target + &lt;br /&gt;
                         pos_indeg_target + neg_indeg_target +&lt;br /&gt;
                         friend_of_friend + friend_of_enemy + &lt;br /&gt;
                         enemy_of_friend + enemy_of_enemy, &lt;br /&gt;
                data = eventnet.stats)&lt;br /&gt;
We get the following results.&lt;br /&gt;
  Coefficients:&lt;br /&gt;
                         Estimate Std. Error t value Pr(&amp;gt;|t|)    &lt;br /&gt;
  (Intercept)          -7.707e-01  1.127e-02 -68.371  &amp;lt; 2e-16 ***&lt;br /&gt;
  positive_inertia      5.814e-03  2.723e-04  21.347  &amp;lt; 2e-16 ***&lt;br /&gt;
  negative_inertia     -2.145e-03  7.214e-05 -29.730  &amp;lt; 2e-16 ***&lt;br /&gt;
  positive_reciprocity  3.071e-03  3.125e-04   9.827  &amp;lt; 2e-16 ***&lt;br /&gt;
  negative_reciprocity -2.188e-03  8.175e-05 -26.768  &amp;lt; 2e-16 ***&lt;br /&gt;
  pos_outdeg_source     1.391e-03  6.853e-05  20.295  &amp;lt; 2e-16 ***&lt;br /&gt;
  neg_outdeg_source    -2.426e-04  3.250e-05  -7.463 8.48e-14 ***&lt;br /&gt;
  pos_indeg_source     -6.058e-04  1.022e-04  -5.930 3.02e-09 ***&lt;br /&gt;
  neg_indeg_source      1.028e-04  3.259e-05   3.153 0.001615 ** &lt;br /&gt;
  pos_outdeg_target     9.800e-04  7.372e-05  13.293  &amp;lt; 2e-16 ***&lt;br /&gt;
  neg_outdeg_target     2.142e-05  3.192e-05   0.671 0.502180    &lt;br /&gt;
  pos_indeg_target     -6.572e-04  9.495e-05  -6.922 4.48e-12 ***&lt;br /&gt;
  neg_indeg_target      6.988e-05  3.051e-05   2.290 0.022014 *  &lt;br /&gt;
  friend_of_friend      1.884e-03  5.349e-04   3.523 0.000427 ***&lt;br /&gt;
  friend_of_enemy      -8.913e-04  2.912e-04  -3.061 0.002205 ** &lt;br /&gt;
  enemy_of_friend      -1.308e-03  2.874e-04  -4.553 5.30e-06 ***&lt;br /&gt;
  enemy_of_enemy       -1.935e-04  1.532e-04  -1.263 0.206593    &lt;br /&gt;
  ---&lt;br /&gt;
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1&lt;br /&gt;
Among other results, this model provides evidence for some - but not all - hypotheses derived from structural balance theory: friends of friends tend to interact more cooperatively while friend of enemies as well as enemies of friends have a tendency to fight each other. On the other hand, the parameter associated with the &#039;&#039;enemy_of_enemy&#039;&#039; statistic is not significant. Note that the data set for fitting this model is different from the one taken in Brandes et al. (2009) since here we also included self-loops to compute the statistics (although events connecting an actor with itself have not been used when fitting the linear model).&lt;br /&gt;
&lt;br /&gt;
Obviously, modeling the event type or event weight as a stochastic function of the event network statistics is not restricted to linear models. Furthermore, if the model should control for actor-level or dyad-level covariates (such as the population size of a country or an indicator for whether two countries have a common border), these can be merged into the statistics table after processing of the event network.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Carter T. Butts: [http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9531.2008.00203.x/full &#039;&#039;&#039;A Relational event framework for social action&#039;&#039;&#039;]. &#039;&#039;Sociological Methodology&#039;&#039; 38(1):155-200, 2008.&lt;br /&gt;
* Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders: [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. Proc. 2009 Intl. Conf. Advances in Social Network Analysis and Mining (ASONAM 2009), pp.200-205. IEEE Computer Society, 2009.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Wikipedia_edit_networks_(tutorial)&amp;diff=1679</id>
		<title>Wikipedia edit networks (tutorial)</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Wikipedia_edit_networks_(tutorial)&amp;diff=1679"/>
		<updated>2018-06-19T08:54:43Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Statistical modeling of edit event networks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Wikipedia_vis_example.png|200px|thumb]]&lt;br /&gt;
The &#039;&#039;&#039;&#039;&#039;edit network&#039;&#039;&#039;&#039;&#039; associated with the history of [http://www.wikipedia.org Wikipedia] pages is a network whose nodes are the page(s) and all contributing users and whose edges encode time-stamped, typed, and weighted interaction events (&#039;&#039;&#039;&#039;&#039;edit events&#039;&#039;&#039;&#039;&#039;) between users and pages and between users and users. Specifically, edit events encode the exact time when an edit has been done along with one or several of the following types of edit interaction: &lt;br /&gt;
* the amount of new text that a user &#039;&#039;&#039;adds&#039;&#039;&#039; to a page; &lt;br /&gt;
* the amount of text that a user &#039;&#039;&#039;deletes&#039;&#039;&#039; (along with the other user/s that has/have previously added this text);&lt;br /&gt;
* the amount of previously deleted text that a user &#039;&#039;&#039;restores&#039;&#039;&#039; (along with the users that previously deleted and the ones that originally added the text). &lt;br /&gt;
&lt;br /&gt;
Together these edit events form a highly dynamic network revealing the emergent collaboration structure among contributing users. For instance, it can be derived &lt;br /&gt;
* who are the users that contributed most of the text;&lt;br /&gt;
* what are the implicit &#039;&#039;&#039;roles&#039;&#039;&#039; of users (e.g., contributors of new content, vandalism fighters, watchdogs);&lt;br /&gt;
* whether there are &#039;&#039;&#039;opinion groups&#039;&#039;&#039;, i.e., groups of users that mutually fight against each others edits.&lt;br /&gt;
&lt;br /&gt;
This [[Tutorials|tutorial]] is a practically oriented &amp;quot;how-to&amp;quot;-guide giving an example based introduction to the computation, analysis, and visualization of Wikipedia edit networks. More background can be found in the papers cited in the [[Wikipedia_edit_networks_(tutorial)#References|references]]. To follow the steps outlined here (or to do a similar study) you should download [[WikiEvent_(software)|&#039;&#039;&#039;WikiEvent&#039;&#039;&#039;]] - a small graphical java software with which Wikipedia edit networks can be computed.&lt;br /&gt;
&lt;br /&gt;
Please address questions and comments about this tutorial to me ([[User:Lerner|J&amp;amp;uuml;rgen Lerner]]).&lt;br /&gt;
&lt;br /&gt;
== How to download the edit history? ==&lt;br /&gt;
&lt;br /&gt;
Wikipedia not only provides access to the current version of each page but also to all of its previous versions. To view the page history in your browser you can just click on the &#039;&#039;&#039;history&#039;&#039;&#039; link on top of each page and browse through the versions. However, for automatic extraction of edit events we need to download the complete history in a more structured format. To do this there are various possibilities that are appropriate in different scenarios (and dependent on your computational resources and internet bandwidth).&lt;br /&gt;
&lt;br /&gt;
To get the history of &#039;&#039;&#039;all&#039;&#039;&#039; pages you can go to the [http://dumps.wikimedia.org/backup-index.html Wikimedia database dumps], select the wiki of interest (for instance, &#039;&#039;&#039;enwiki&#039;&#039;&#039; for the English-language Wikipedia), and download all files linked under the headline &#039;&#039;All pages with complete edit history&#039;&#039;. The complete database is extremely large (several [http://en.wikipedia.org/wiki/Terabyte terabytes] for the English-language Wikipedia) and probably cannot be managed with an ordinary desktop computer.&lt;br /&gt;
&lt;br /&gt;
Another possibility to get the complete history of a Wikipedia page (or of a small set of pages) is to use the wiki&#039;s [http://en.wikipedia.org/wiki/Special:Export Export page]. The preceeding link is for the English-language Wikipedia - for other languages just change the language identifier &#039;&#039;en&#039;&#039; in the URL to, for instance, &#039;&#039;de&#039;&#039; or &#039;&#039;fr&#039;&#039; or &#039;&#039;es&#039;&#039;, etc. (Actually, this visone wiki has, as any other MediaWiki, also an export page available at [[Special:Export]]; there you could download the edit history of visone manual pages - which are definitively much shorter than those from Wikipedia.)&lt;br /&gt;
&lt;br /&gt;
[[File:Wikipedia_export_pages.png|400px]]&lt;br /&gt;
&lt;br /&gt;
For instance, to download the history of the page [http://en.wikipedia.org/wiki/Social_network_analysis &#039;&#039;&#039;Social network analysis&#039;&#039;&#039;] make settings as in the screenshot above and click on the &#039;&#039;&#039;Export&#039;&#039;&#039; button. However, as it is noted on the page, exporting is limited to 1000 revisions and the example page (Social network analysis) has already more than 2700 revisions. In principle it is possible to download the next 1000 revisions by specifying an appropriate offset (as explained on the [http://www.mediawiki.org/wiki/Manual:Parameters_to_Special:Export manual page for Special:Export]) and then pasting the files together. However, since this is rather tedious the software [[WikiEvent_(software)|WikiEvent]] offers a possibility to do this automatically. (Internally WikiEvent proceeds exactly as described above by retrieving revisions in chunks of 1000 and appending these to a single output file.)&lt;br /&gt;
&lt;br /&gt;
To download a page history with [[WikiEvent_(software)|WikiEvent]] you start the program (download it from [http://www.inf.uni-konstanz.de/algo/software/wikievent/ http://www.inf.uni-konstanz.de/algo/software/wikievent/] and execute by double-clicking) and click on the entry &#039;&#039;&#039;download history&#039;&#039;&#039; in the &#039;&#039;&#039;net&#039;&#039;&#039; menu. You have to specify the language of the Wikipedia (for instance, &#039;&#039;&#039;en&#039;&#039;&#039; for English, &#039;&#039;&#039;de&#039;&#039;&#039; for German, &#039;&#039;&#039;fr&#039;&#039;&#039; for French, etc), the title of the page to download and a directory on your computer in which the file should be saved.&lt;br /&gt;
&lt;br /&gt;
[[File:Wikipedia_lang_code.png]] [[File:Wikipedia_page_title.png]] [[File:Wikipedia_download_sna.png]] &lt;br /&gt;
&lt;br /&gt;
The program is actually very silent - for instance, you don&#039;t see a progres bar - until the download is complete. The time it takes to download depends on many factors, among them the size of the page history (which might be several [http://en.wikipedia.org/wiki/Gigabyte gigabytes] for some popular pages!) and the bandwidth of your internet connection. At the end you see the number of downloaded revisions in the message area of WikiEvent. &lt;br /&gt;
&lt;br /&gt;
For information: the size of the history file for the page &#039;&#039;Social network analysis&#039;&#039; is about 84 [http://en.wikipedia.org/wiki/Megabyte Megabytes] on May 04, 2015 (obviously growing). The history is saved in a file &#039;&#039;&#039;Social_network_analysis.xml&#039;&#039;&#039; in the directory that you have chosen. If you are interested, the XML format is described in the page [http://www.mediawiki.org/wiki/Help:Export http://www.mediawiki.org/wiki/Help:Export] - but you never have to read these files since they are automatically processed as described below.&lt;br /&gt;
&lt;br /&gt;
== Computing the edit network ==&lt;br /&gt;
&lt;br /&gt;
To compute the edit events from a Wikipedia history file select the entry &#039;&#039;&#039;extract edit events&#039;&#039;&#039; in the &#039;&#039;&#039;page&#039;&#039;&#039;-menu of WikiEvent. You have to specify one or more history file(s) and a directory to save the files with the edit events. (These output files have the same names as the input files - just with the ending &#039;&#039;&#039;.xml&#039;&#039;&#039; replaced by &#039;&#039;&#039;.csv&#039;&#039;&#039;.)&lt;br /&gt;
 &lt;br /&gt;
[[File:Wikipedia_extract_edit_events.png]]&lt;br /&gt;
&lt;br /&gt;
If we compute the edit events from the history of the page &#039;&#039;Social network analysis&#039;&#039;, then the first few lines of the edit event file look like this:&lt;br /&gt;
  PageTitle;RevisionID;Time(calendar);Time(milliseconds);InteractionType;WordCount;ActiveUser;Target&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;1711088;2003-09-23T21:08:52Z;1064344132000;added;196;&amp;quot;142.177.104.40&amp;quot;;&amp;quot;Social network analysis&amp;quot;&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;2002109;2003-11-11T06:13:44Z;1068527624000;added;10;&amp;quot;63.228.105.175&amp;quot;;&amp;quot;Social network analysis&amp;quot;&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;2002109;2003-11-11T06:13:44Z;1068527624000;deleted;192;&amp;quot;63.228.105.175&amp;quot;;&amp;quot;142.177.104.40&amp;quot;&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;2036847;2003-12-19T22:42:43Z;1071870163000;added;54;&amp;quot;Davodd&amp;quot;;&amp;quot;Social network analysis&amp;quot;&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;2036847;2003-12-19T22:42:43Z;1071870163000;deleted;7;&amp;quot;Davodd&amp;quot;;&amp;quot;63.228.105.175&amp;quot;&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;2210638;2003-12-24T13:29:11Z;1072268951000;added;1;&amp;quot;210.49.82.219&amp;quot;;&amp;quot;Social network analysis&amp;quot;&lt;br /&gt;
  &amp;quot;Social network analysis&amp;quot;;2210638;2003-12-24T13:29:11Z;1072268951000;deleted;1;&amp;quot;210.49.82.219&amp;quot;;&amp;quot;Davodd&amp;quot;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
The file encodes a table with entries separated by semicolons (&#039;&#039;&#039;;&#039;&#039;&#039;). The columns from left to right encode&lt;br /&gt;
* The &#039;&#039;&#039;title&#039;&#039;&#039; of the page (since a history file can contain the history of several pages the title-field can actually vary.).&lt;br /&gt;
* The &#039;&#039;&#039;revision id&#039;&#039;&#039; which is a number uniquely identifying a revision in Wikipedia (not just in one page). A single edit can produce more than just one line in the output file (we say more on this below); the revision id makes it possible to recognize which lines belong to the same edit.&lt;br /&gt;
* The &#039;&#039;&#039;time&#039;&#039;&#039; of the edit given as a date/time-string. For instance the first edit happend on September 23, 2003 at 21:08:52 (where time is measured in the [http://en.wikipedia.org/wiki/Coordinated_Universal_Time UTC] time zone).&lt;br /&gt;
* Once again the edit &#039;&#039;&#039;time&#039;&#039;&#039; given as a number encoding milliseconds since January 1, 1970 at 00:00:00.000 Greenwich Mean Time. (This value is actually obtained by the method &amp;lt;code&amp;gt;getTimeInMillis&amp;lt;/code&amp;gt; of the java class &amp;lt;code&amp;gt;Calendar&amp;lt;/code&amp;gt;.) The time in milliseconds is helpful if you just need the time &#039;&#039;difference&#039;&#039; between revisions and not the actual time or date; it is obvisously easier to compute the time difference from numbers than from data/time strings.&lt;br /&gt;
* The edit &#039;&#039;&#039;type&#039;&#039;&#039; which can be &#039;&#039;added&#039;&#039;, &#039;&#039;deleted&#039;&#039;, &#039;&#039;restored&#039;&#039;, or &#039;&#039;undeleted&#039;&#039;; we say more on this below.&lt;br /&gt;
* The &#039;&#039;&#039;word count&#039;&#039;&#039;, i.e., the number of words that are added, deleted, restored, or undeleted with respect to the given target.&lt;br /&gt;
* The &#039;&#039;&#039;active user&#039;&#039;&#039; is the user that has done the edit; it is the source node of the edit event. The user is identified by a user name if logged in; otherwise (if it is an anonymous edit) the user is identified by an IP address.&lt;br /&gt;
* The &#039;&#039;&#039;target&#039;&#039;&#039; node of the edit event is either the page or a user. If the event type is &#039;&#039;added&#039;&#039;, then the target is the page (the active user adds text to the page). If the event type is &#039;&#039;deleted&#039;&#039;, &#039;&#039;restored&#039;&#039;, or &#039;&#039;undeleted&#039;&#039;, then the target is the user who has previously written or deleted the text (the active user deletes/restores/undeletes text that has been added/deleted by the target user).&lt;br /&gt;
&lt;br /&gt;
We say more on the different event types in the following.  &lt;br /&gt;
&lt;br /&gt;
=== The structure of edit network data ===&lt;br /&gt;
&lt;br /&gt;
Consider an example of three revisions on one page where&lt;br /&gt;
* (in Revision 1) user &#039;&#039;Alice&#039;&#039; adds some new text to the page;&lt;br /&gt;
* subsequently (in Revision 2), user &#039;&#039;Bob&#039;&#039; deletes this text;&lt;br /&gt;
* then (in Revision 3), user &#039;&#039;Charlie&#039;&#039; [http://en.wikipedia.org/wiki/Help:Reverting reverts] Bob&#039;s edit - setting back the page text to the one submitted in Revision 1.&lt;br /&gt;
&lt;br /&gt;
These three edits together give rise to &#039;&#039;&#039;four&#039;&#039;&#039; dyadic edit events (shown in the image below):&lt;br /&gt;
&lt;br /&gt;
[[File:Edit_network_example.png]]&lt;br /&gt;
&lt;br /&gt;
* An edit event of type &#039;&#039;added&#039;&#039; from user Alice to the edited page.&lt;br /&gt;
* An edit event of type &#039;&#039;deleted&#039;&#039; from user Bob directed to user Alice.&lt;br /&gt;
* An edit event of type &#039;&#039;restored&#039;&#039; from user Charlie directed to user Alice (Charlie restored text that has been previously written by Alice).&lt;br /&gt;
* An edit event of type &#039;&#039;undeleted&#039;&#039; from user Charlie directed to user Bob (Charlie restored text that has been previously deleted by Bob). &#039;&#039;&#039;Note&#039;&#039;&#039; that after the revert the restored text is (again) authored by Alice and not by Charlie.&lt;br /&gt;
&lt;br /&gt;
All edit events are weighted by the number of words that have been added, deleted, restored, or undeleted and all edit events have a time stamp marking the time when the edit has been submitted.&lt;br /&gt;
&lt;br /&gt;
A single edit on a Wikipedia page generates one &#039;&#039;&#039;hyperedge&#039;&#039;&#039; linking the active user to (potentially) several other users and the edited page. Such a hyperedge has been turned into several lines of the CSV file, each encoding one &#039;&#039;&#039;(dyadic) edge&#039;&#039;&#039;, linking the source (active user) to one target in one interaction type. Note that the hyperedges can be reconstructed from the data using the revision ids (see above).&lt;br /&gt;
&lt;br /&gt;
For determining the amount of text modified in an edit we make some choices. For instance, if complete sentences are just moved from one part of the page to another, we do not count this as any change. More detailed information about the text-processing conventions can be found in&lt;br /&gt;
* Ulrik Brandes, Patrick Kenis, J&amp;amp;uuml;rgen Lerner, and Denise van Raaij: [http://www.inf.uni-konstanz.de/algo/publications/bklv-nacsw-09.pdf &#039;&#039;&#039;Network Analysis of Collaboration Structure in Wikipedia&#039;&#039;&#039;]. Proc. 18th Intl. World Wide Web Conference (WWW 2009).&lt;br /&gt;
and more technically in &lt;br /&gt;
* Ulrik Brandes, Patrick Kenis, J&amp;amp;uuml;rgen Lerner, and Denise van Raaij: [http://www.inf.uni-konstanz.de/algo/publications/bklv-cwen-09.pdf &#039;&#039;&#039;Computing Wikipedia Edit Networks&#039;&#039;&#039;]. Technical Report, 2009.&lt;br /&gt;
&lt;br /&gt;
For convenience, we make the computed edit events available for download in the file [[Media:Social_network_analysis.zip|Social_network_analysis.zip]].&lt;br /&gt;
&lt;br /&gt;
== Importing edit event networks into visone ==&lt;br /&gt;
&lt;br /&gt;
The CSV file with the computed edit events can be imported in visone when opening it as an &#039;&#039;&#039;event list file&#039;&#039;&#039;. Visone&#039;s capabilities in importing and analyzing event networks are documented in the [[Event_networks_(tutorial)|tutorial on event networks]]; here we treat the special case of edit event networks.&lt;br /&gt;
&lt;br /&gt;
To open an event list file (such as the newly created &#039;&#039;Social_network_analysis.csv&#039;&#039;) click on &#039;&#039;&#039;open&#039;&#039;&#039; in visone&#039;s &#039;&#039;&#039;file&#039;&#039;&#039; menu, select &#039;&#039;&#039;files of type&#039;&#039;&#039;: &#039;&#039;event list files&#039;&#039;, navigate to the CSV file, and click on &#039;&#039;&#039;ok&#039;&#039;&#039;. In the import options, choose&lt;br /&gt;
the semicolon (&#039;&#039;&#039;;&#039;&#039;&#039;) as a cell delimiter and double quotes (&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;) as textframe.&lt;br /&gt;
&lt;br /&gt;
[[File:File_open_eventlist.png]] [[File:Import_options_event_list.png]]&lt;br /&gt;
&lt;br /&gt;
visone can now read the various entries of the input file - and you have to specify how these should be mapped to the resulting network in the dialog &#039;&#039;&#039;EventNetwork specification&#039;&#039;&#039; (shown below). Concretely you have to specify how the various components of an event are encoded in the file (&#039;&#039;Event format&#039;&#039; tab); how to iterate over the network sequence (&#039;&#039;Event iterator&#039;&#039; tab); how the events are mapped to the network&#039;s link attributes (&#039;&#039;Event network&#039;&#039; tab); and, if desired, which statistics should be computed while constructing the event network (&#039;&#039;Eventnet statistics&#039;&#039; tab). The tabs should be filled out in the order as they are numbered in the dialog since choice-possibilities for the latter tabs depend on previous settings. If you make changes in some tab you have to subsequently set (again) the values for the latter tabs.&lt;br /&gt;
&lt;br /&gt;
=== Event format ===&lt;br /&gt;
&lt;br /&gt;
In the event format tab (see the image below) you first have to specify which columns of the input file hold the information about the five components of an event (source, target, time, type, and weight). You can set the values as in the image below. &lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_format.png]]&lt;br /&gt;
&lt;br /&gt;
After these five components have been chosen visone needs some information about the interpretation of time. (visone can handle very general date/time formats - but some information is necessary.) The first choice is the selection between &#039;&#039;&#039;numeric time&#039;&#039;&#039; (if the time fields correspond to integer numbers) or &#039;&#039;&#039;calendar time&#039;&#039;&#039; (if time fields can somehow, specified below, be turned into a date/time). We have calendar time in our example.&lt;br /&gt;
&lt;br /&gt;
If time is given by calendar, a &#039;&#039;&#039;time format pattern&#039;&#039;&#039; has to be specified. visone proposes some known pattern - among others the pattern &#039;&#039;&#039;yyyy-MM-dd&#039;T&#039;HH:mm:ss&#039;Z&#039;&#039;&#039;&#039; which is appropriate for the Wikipedia edit times. You can enter other than the proposed patterns in the textfield if date/time is formatted differently (see the webpage on the java class [http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html SimpleDateFormat] for guidance). visone assists you in finding the right pattern by showing some date/time strings as they appear in the file and - whenever you select a date format pattern - the dialog shows you the current time formatted by the specified pattern.&lt;br /&gt;
&lt;br /&gt;
Finally, you have to specify a &#039;&#039;&#039;time unit&#039;&#039;&#039;. If time is numeric you have to enter a (integer) number in the textfield. If time is given by calendar you can select a &amp;quot;natural&amp;quot; time unit from &#039;&#039;Millisecond&#039;&#039; to &#039;&#039;Year&#039;&#039;. An appropriate time unit makes the iteration over the event sequence (and potentially the decay of link attributes over time) more intuitive. When computing event network statistics, events that happen within the same time unit are treated as independent of each other. The finest time unit that makes sense for the Wikipedia edit events is &#039;&#039;Second&#039;&#039; (since the edit times are not given with higher precision). But you could also choose &#039;&#039;Day&#039;&#039; as a time unit if you think that this is fine-grained enough.&lt;br /&gt;
&lt;br /&gt;
When all settings in the event format tab are done, you can create the list of events by clicking on the &#039;&#039;&#039;Apply (create events)&#039;&#039;&#039; button. A message informs about the number of events and the number of time units from the first to the last event.&lt;br /&gt;
&lt;br /&gt;
=== Event iterator ===&lt;br /&gt;
&lt;br /&gt;
In the event iterator tab (see below) you have to specify the start and end time of the time interval to be processed and the delay between network snapshots.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_iterator.png]]&lt;br /&gt;
&lt;br /&gt;
When the events have been created after filling out the event format tab (see the preceeding section) visone suggests as start time the time of the first event and as end time the time of the last event. If you don&#039;t want to process the whole event sequence you can increase the start time and/or decrease the end time. After clicking on the upper &#039;&#039;&#039;Apply / get info&#039;&#039;&#039; button, visone informs you about the number of events and time units in the specified subsequence. You might just take all events by not changing the interval borders; this includes all events from September 23, 2003 to July 11, 2012 - as can be seen in the dialog.&lt;br /&gt;
&lt;br /&gt;
Then you have to choose the time points when a network snapshot is to be created by specifying the delay between snapshots. You can see in the dialog that the event sequence spans more than 277 million time units (i.e., seconds with the current settings). The number of snapshots must be small (some 10 or 20 snapshots would still be ok), since they are all opened in a new tab in visone. When specifying: &#039;&#039;create snapshots after every&#039;&#039; &#039;&#039;&#039;100,000,000&#039;&#039;&#039; &#039;&#039;time unit(s)&#039;&#039;, then visone creates three snapshots. (This is an example where a coarser time unit might be more intuitive; 100 million seconds are actually a bit more than 1157 days.) visone always creates one snapshot at the end of the event sequence - even if the waiting time is less than the specified number.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Do not click on &#039;&#039;Process event network&#039;&#039; before you specify the event network in the next step.&lt;br /&gt;
&lt;br /&gt;
=== Event network ===&lt;br /&gt;
&lt;br /&gt;
The tab to specify the event network is the most important one - here you define which &#039;&#039;&#039;link attributes&#039;&#039;&#039; of the event network summarize the past events, how events of various types add to these attributes, and how they change over time. The dialog might seem a bit complicated at first glance but the mechanism to specify the evolution of the event network is very powerful and general.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_network.png]]&lt;br /&gt;
&lt;br /&gt;
The first thing to do is to decide on the link attributes. Here you are free to choose any attribute name (that makes it easy to remember the intuition of the attribute). Furthermore, a halftime - defining how fast attributes decay over time - has to be specified. The halftime has the following effect: when a particular link attribute on a particular dyad (pair or actors) has a value of &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; at time &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, then (if no event on the same dyad happens in between) the value is &amp;lt;math&amp;gt;x/2&amp;lt;/math&amp;gt; at time&lt;br /&gt;
&amp;lt;math&amp;gt;t+halftime&amp;lt;/math&amp;gt;. Intuitively, link attributes with a positive halftime capture &#039;&#039;recent interaction&#039;&#039;. A halftime equal to zero or negative indicates that the respective attribute does not decay over time; these attributes capture &#039;&#039;past interaction&#039;&#039; irrespective of the elapsed time.&lt;br /&gt;
&lt;br /&gt;
In our concrete example we choose the following link attributes.&lt;br /&gt;
* The attributes &#039;&#039;added&#039;&#039;, &#039;&#039;deleted&#039;&#039;, &#039;&#039;restored&#039;&#039;, and &#039;&#039;undeleted&#039;&#039; just add up the weight (i.e., the number of words modified) of past events of the respective type (with no decay). For instance, the value of the attribute &#039;&#039;added&#039;&#039; on a link connecting user &#039;&#039;U&#039;&#039; with page &#039;&#039;P&#039;&#039; at time &#039;&#039;t&#039;&#039; is equal to the number of words that &#039;&#039;U&#039;&#039; contributed to &#039;&#039;P&#039;&#039; at or before time &#039;&#039;t&#039;&#039;. Similarly, the value of &#039;&#039;deleted&#039;&#039; on a dyad &#039;&#039;(U,V)&#039;&#039; is equal to the number of words that user &#039;&#039;U&#039;&#039; deleted of text previously written by user &#039;&#039;V&#039;&#039;.&lt;br /&gt;
* The attribute &#039;&#039;recently added&#039;&#039; counts words added by users to a page but has a decay over time. If we choose as halftime the same value as for the interval between snapshots, then 100 words added just at the end of the first interval (say) contribute with a value of 50 at the end in the second snapshot. (It is also possible to introduce attributes like &#039;&#039;recently deleted&#039;&#039;, etc; and it would also be possible to have varying halftimes to capture very recent interaction, recent interaction, more distant interaction, etc., in the same event network.)&lt;br /&gt;
* The attribute &#039;&#039;log added&#039;&#039; adds up the logarithm of the number of newly contributed words. A logarithmic transformation is appropriate in very skewed event weights (when, say, twice the number of words should not count twice as much but only slighly more). Other transformations of event weights are also possible.&lt;br /&gt;
* The attribute &#039;&#039;interacted&#039;&#039; adds up the number of modified (added, deleted, restored, or undeleted) words irrespective of the event type.&lt;br /&gt;
* The attribute &#039;&#039;agreed-disagreed&#039;&#039; is meant as a proxy for whether a user agrees or rather disagrees with the edits of another user. Specifically, deletions and undeletions are interpreted as disagreements since a user makes another user&#039;s edits undone; restoring text is interpreted as an agreement. (This indicator is proposed and used in the published papers cited in the [[Wikipedia_edit_networks_(tutorial)#References|references]] but will also become clearer in this tutorial.) &lt;br /&gt;
&lt;br /&gt;
At the beginning the dialog has two rows for two different link attributes; more can be added by clicking the &#039;&#039;&#039;more attributes ...&#039;&#039;&#039; button. When all attributes are specified they have to be added to the event network (for instance by clicking the &#039;&#039;&#039;Add / update all&#039;&#039;&#039; button). Then you can create the weight function table.&lt;br /&gt;
&lt;br /&gt;
In the &#039;&#039;&#039;weight function table&#039;&#039;&#039; there is one column for every event type and one row for every link attribute. A particular entry in this table specifies how events of the column type contribute to the link attribute in the respective row. The entries are combo boxes allowing you to select from the available weight functions. For instance, selecting the weight function &#039;&#039;Identity&#039;&#039; for the attribute &#039;&#039;deleted&#039;&#039; and the event type &#039;&#039;deleted&#039;&#039; implies that the weight (i.e., the number of words) of events of type &#039;&#039;deleted&#039;&#039; are added (without transforming them) to the link attribute &#039;&#039;deleted&#039;&#039;. The weight function &#039;&#039;Logarithm&#039;&#039; for the attribute &#039;&#039;log added&#039;&#039; and the event type &#039;&#039;added&#039;&#039; implies that the logarithm of the event weight is added. Note that in the row corresponding to the attribute &#039;&#039;interacted&#039;&#039; we add up the weights of all event types; for the attribute &#039;&#039;agreed-disagreed&#039;&#039; we add weights of events of type &#039;&#039;restored&#039;&#039; and subtract (chose the weight function &#039;&#039;MinusIdentity&#039;&#039;) weights of events of type &#039;&#039;deleted&#039;&#039; or &#039;&#039;undeleted&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
When these settings are complete you can process the event network. (You need to fill out the event statistics tab only when you want to do a statistical analysis of the event network - this is documented in a latter section: [[Wikipedia_edit_networks_(tutorial)#Statistical_modeling_of_edit_event_networks]].) After clicking on the button &#039;&#039;&#039;Process event network!&#039;&#039;&#039; it takes a few minutes or so (depending on the size and number of the snapshots). With our settings we create three network tabs holding the three snapshots. The dialog does not close after processing; you might change some of the settings and create different snapshots - or close the dialog explicitly.&lt;br /&gt;
&lt;br /&gt;
For convenience, we make the GraphML file of the first snapshot available for download in [[Media:Social_network_analysis_(raw).graphml.zip|Social_network_analysis_(raw).graphml.zip]].&lt;br /&gt;
&lt;br /&gt;
== Analysis and visualization of edit networks ==&lt;br /&gt;
&lt;br /&gt;
The created network snapshots have nodes representing the page (or pages, if there are several in the history file) and all users that contributed at or before the time of the snapshot. The link attributes encode (in our case) the number of words added, deleted, restored, undeleted, or modifications thereof (as explained before) - again taken at the snapshot time. Analysis and visualization works similar as for any other network with many numerical link attributes. In particular, many of the derived user attributes that have been proposed in Ulrik Brandes, Patrick Kenis, J&amp;amp;uuml;rgen Lerner, and Denise van Raaij (2009): [http://www.inf.uni-konstanz.de/algo/publications/bklv-nacsw-09.pdf &#039;&#039;&#039;Network Analysis of Collaboration Structure in Wikipedia&#039;&#039;&#039;] can be computed and visualized by visone starting from the available link attributes. Examplarily we illustrate some possibilities with the first snapshot, the smallest one, that has 412 nodes and 1341 links.&lt;br /&gt;
&lt;br /&gt;
The first observation is that the layout after loading is very cluttered. Actually, all user-nodes that added at least one word to the page (&#039;&#039;Social network analysis&#039;&#039;) are at a distance of two or smaller - leading to the very dense circle around one very central node. An improvement can be achieved by deleting the node representing the page - after some information has been collected in the (user-)nodes. Therefore, go to the [[analysis tab]] select the node outdegree with &#039;&#039;link strength&#039;&#039; set to the link attribute &#039;&#039;added&#039;&#039; and save it in a node attribute &#039;&#039;added&#039;&#039; (see the screen shot below). Do the same again with the attribute &#039;&#039;log added&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_outdegree_added.png]]&lt;br /&gt;
&lt;br /&gt;
To delete the single node representing the page we have to select it first. This can be done by selecting the single node with the label equal to &#039;&#039;Social network analysis&#039;&#039; in the [[Attribute manager]]; or (more generally since it is applicable to networks with several page-nodes) we compute the unweighted outdegree and select all nodes with outdegree equal to zero - these are exactly the nodes representing pages.&lt;br /&gt;
&lt;br /&gt;
After having deleted the node representing the page, reducing to the largest connected component, and computing and visualizing some additional indicators, we can come up with an image as the following.&lt;br /&gt;
&lt;br /&gt;
[[File:Wikipedia_vis_example.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Here the color of the nodes represent the amount of text added (blue for those who added a lot). The size of the nodes as well as the centrality of their position and the node label size represent the activity of the nodes - computed from the &#039;&#039;interacted&#039;&#039; attribute (note that this includes adding, deleting, restoring, or undeleting text). The width of the links is again a function of the &#039;&#039;interacted&#039;&#039; attribute. Finally the link color is tending to orange if the &#039;&#039;agreed-disagreed&#039;&#039; attribute admits strongly negative values (resulting from deletion or undeletion and being interpreted as disagreement) and the link color is tending to blue when the &#039;&#039;agreed-disagreed&#039;&#039; attribute becomes larger (being interpreted as agreement).&lt;br /&gt;
&lt;br /&gt;
Many other ways to graphically encode these and other indicators are possible.&lt;br /&gt;
&lt;br /&gt;
For convenience, we make the GraphML file of the first snapshot with an improved layout available for download in [[Media:Social_network_analysis.graphml.zip|Social_network_analysis.graphml.zip]].&lt;br /&gt;
&lt;br /&gt;
== Statistical modeling of edit event networks ==&lt;br /&gt;
&lt;br /&gt;
While importing event networks it is possible to compute and save network statistics associated with dyadic events that can be used to build and estimate a statistical model for the &#039;&#039;&#039;conditional event type&#039;&#039;&#039;. Such models have been proposed in Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders (2009): [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;] and applied to Wikipedia edit networks in J&amp;amp;uuml;rgen Lerner, Ulrik Brandes, Patrick Kenis, and Denise van Raaij (2012): [http://www.transcript-verlag.de/ts1927/ts1927.php &#039;&#039;&#039;Modeling Open, Web-based Collaboration Networks: The Case of Wikipedia&#039;&#039;&#039;]. These models can be used to test whether the network of past edit events explains the likelihood of future deletions or undeletions, for instance&lt;br /&gt;
* Do users have a tendency to delete the edits from users who deleted them previously?&lt;br /&gt;
* Do the deletion/undeletion events give rise to patterns of structural balance?&lt;br /&gt;
(Note that the functionality for statistical analysis of event networks has been superseded by the [http://algo.uni-konstanz.de/software/eventnet/ &#039;&#039;&#039;event network analyzer (eventnet)&#039;&#039;&#039;], which is a separate software that is not restricted to the analysis of the conditional event type and offers much more general settings. We nevertheless keep the description below how to perform a statistical analysis of event networks with visone.)&lt;br /&gt;
&lt;br /&gt;
The event network statistics can be computed during importing the data, are saved in a file, and can then be analyzed with any statistical software, such as [http://www.r-project.org/ &#039;&#039;&#039;R&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
To illustrate how such statistics can be computed and modeled we modify the link attributes in the event network tab (see below). (The settings in the event format and event iterator tabs stay the same.)&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_attr4stat.png]]&lt;br /&gt;
&lt;br /&gt;
Specifically, we define only two attributes, one that measures past agreement (a fuction or events of type &#039;&#039;restored&#039;&#039;) and one the measures past disagreement (a function of events of type &#039;&#039;deleted&#039;&#039; or &#039;&#039;undeleted&#039;&#039;). The halftime of both attributes is set to 30 days (which is 2592000 seconds) and the event weights (word counts) are logarithmically scaled.&lt;br /&gt;
&lt;br /&gt;
=== Specifying event statistics in the eventnet dialog ===&lt;br /&gt;
&lt;br /&gt;
The statistics to be computed are defined in the eventnet statistics tab of the import dialog (see below). You first have to specify whether a statistic table should be created at all; if yes an output file has to be chosen and one or more statistics have to be defined.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_statistics.png]]&lt;br /&gt;
&lt;br /&gt;
The statistics are used to model events in the following way: whenever an event happens that is initiated by a &#039;&#039;&#039;source&#039;&#039;&#039; node and directed to a &#039;&#039;&#039;target&#039;&#039;&#039; node, then the dyad &#039;&#039;(source, target)&#039;&#039; is embedded in the network of past events, i.e., all events that happened before the current event. The event network statistics describe relevant aspects of this network of past events with respect to the specific dyad. visone offers three different types of statistics - dyad statistics, degree statistics, and triangle statistics - that can be varied with respect to edge direction and/or link attributes. After defining the statistics they have to be added to the event network by clicking on the &#039;&#039;&#039;Add / update&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
==== Dyad statistics ====&lt;br /&gt;
&lt;br /&gt;
Dyad statistics encode aspects of the past events from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; or in the other direction. That is the dyad statistics encode how &#039;&#039;source&#039;&#039; interacted with &#039;&#039;target&#039;&#039; in the past and how &#039;&#039;target&#039;&#039; interacted with &#039;&#039;source&#039;&#039;. In our exmple we define four different dyad statistics that are obtained by switching the direction (&#039;&#039;inertia&#039;&#039; if &#039;&#039;&#039;OUT&#039;&#039;&#039;-going events - from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; - are considered and &#039;&#039;reciprocity&#039;&#039; if &#039;&#039;&#039;IN&#039;&#039;&#039;-coming events - from &#039;&#039;target&#039;&#039; to &#039;&#039;source&#039;&#039; - are considered) and the link attribute (&#039;&#039;positive&#039;&#039; for past agreements and &#039;&#039;negative&#039;&#039; for past disagreements).&lt;br /&gt;
&lt;br /&gt;
Intuitively, if users tend to delete text of those that deleted them, then we expect that the &#039;&#039;negative reciprocity&#039;&#039; statistic is positively related with the likelihood that the edit event is of type &#039;&#039;deleted&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Degree statistics ====&lt;br /&gt;
&lt;br /&gt;
Degree statistics summarize the past events around the dyad &#039;&#039;(source, target)&#039;&#039; by the weighted (out-/in-) degree of &#039;&#039;source&#039;&#039; or &#039;&#039;target&#039;&#039;. The links can be weighted by any attribute. For instance, the &#039;&#039;neg_outdeg_source&#039;&#039; statistic adds up the values of the &#039;&#039;disagreement&#039;&#039; attribute on all links starting at the &#039;&#039;source&#039;&#039; node (not only those that are directed to &#039;&#039;target&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Intuitively, if users that deleted a lot in the past tend to delete in the future, then we expect a positive relation between the &#039;&#039;neg_outdeg_source&#039;&#039; statistic and the likelihood that the edit event is of type &#039;&#039;deleted&#039;&#039;. This could point to the presence of users that play specific roles, for instance, &amp;quot;vandalism fighters&amp;quot; that undo malicious edits.&lt;br /&gt;
&lt;br /&gt;
==== Triangle statistics ====&lt;br /&gt;
&lt;br /&gt;
Triangle statistics summarize the network of past events around the dyad &#039;&#039;(source, target)&#039;&#039; by weighted indirect relations from &#039;&#039;source&#039;&#039; over any third node to &#039;&#039;target&#039;&#039; or the other way round. You can select the attributes for the links attached to &#039;&#039;source&#039;&#039; and to &#039;&#039;target&#039;&#039; and the direction which can be &#039;&#039;&#039;OUT&#039;&#039;&#039; (only out-going ties with respect to the &#039;&#039;source&#039;&#039;/&#039;&#039;target&#039;&#039;), &#039;&#039;&#039;IN&#039;&#039;&#039; (only in-coming ties), or &#039;&#039;&#039;SYM&#039;&#039;&#039; (adding up the attributes of out-going and in-coming ties). &lt;br /&gt;
&lt;br /&gt;
For instance, the statistic &#039;&#039;enemy_of_friend&#039;&#039; iterates over all users &#039;&#039;U&#039;&#039; in the network, multiplies the value of the &#039;&#039;agreement&#039;&#039; attribute on links connecting &#039;&#039;source&#039;&#039; and &#039;&#039;U&#039;&#039; (in both directions) with the value of the &#039;&#039;disagreement&#039;&#039; attribute on links connecting &#039;&#039;target&#039;&#039; and &#039;&#039;U&#039;&#039; (in both directions), and adds up these products for all &#039;&#039;U&#039;&#039;. Intuitively, the value of the &#039;&#039;enemy_of_friend&#039;&#039; statistic on the dyad &#039;&#039;(source, target)&#039;&#039; is high if there are many other users &#039;&#039;U&#039;&#039; that are in agreement with &#039;&#039;source&#039;&#039; and in disagreement with &#039;&#039;target&#039;&#039;; structural balance theory predicts that &#039;&#039;source&#039;&#039; is then more likely to disagree with &#039;&#039;target&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Starting the computation ====&lt;br /&gt;
&lt;br /&gt;
Once the output file and the statistics are specified, click on the &#039;&#039;&#039;Process event network!&#039;&#039;&#039; button. Snapshots are created as defined in the event iterator tab and statistics are computed as defined in the eventnet statistics tab.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that statistics associated with an event that happens at time &#039;&#039;t&#039;&#039; are only a function of events that happend earlier (strictly before &#039;&#039;t&#039;&#039;) - and do not depend on events that happen in the same time unit.&lt;br /&gt;
&lt;br /&gt;
The computed eventnet statistics file (&#039;&#039;Social_network_analysis_stats.csv&#039;&#039; in our example) is a table in CSV format in which each row corresponds to one event of the input file. The components of the event (source, target, time, type, and weight) are first repeated in each row - followed by the values of all statistics.&lt;br /&gt;
&lt;br /&gt;
=== Modeling the conditional event type ===&lt;br /&gt;
The statistics file can now be analyzed with any statistical software - we describe the following for the [http://www.r-project.org R environment for statistical computing] (also see the visone tutorial on the [[R_console_(tutorial)|R console]]).&lt;br /&gt;
&lt;br /&gt;
First set the R working directory to the directory where the statistics file is located, for instance &lt;br /&gt;
  setwd(&amp;quot;c:/juergen/projects/wiki/data/&amp;quot;)&lt;br /&gt;
To read the file into a table and see some summary statistics type&lt;br /&gt;
  eventnet.stats &amp;lt;- read.csv(&amp;quot;Social_network_analysis_stats.csv&amp;quot;, sep=&amp;quot;;&amp;quot;)&lt;br /&gt;
  summary(eventnet.stats)&lt;br /&gt;
For modeling the likelihood whether an edit is an &#039;&#039;undo&#039;&#039; edit we create a new binary variable &#039;&#039;&#039;is.undo&#039;&#039;&#039; that is equal to &#039;&#039;1&#039;&#039; if and only if the edit type is &#039;&#039;deleted&#039;&#039; or &#039;&#039;undeleted&#039;&#039;.&lt;br /&gt;
  eventnet.stats$is.undo &amp;lt;- 0&lt;br /&gt;
  eventnet.stats$is.undo[eventnet.stats$TYPE == &amp;quot;deleted&amp;quot;] &amp;lt;- 1 &lt;br /&gt;
  eventnet.stats$is.undo[eventnet.stats$TYPE == &amp;quot;undeleted&amp;quot;] &amp;lt;- 1 &lt;br /&gt;
  summary(eventnet.stats)&lt;br /&gt;
We remove those events that are of type &#039;&#039;added&#039;&#039; (since these are interactions between users and the page).&lt;br /&gt;
  eventnet.stats &amp;lt;- eventnet.stats[eventnet.stats$TYPE != &amp;quot;added&amp;quot;,]&lt;br /&gt;
Further we model only those events that are not self-loops.&lt;br /&gt;
  eventnet.stats &amp;lt;- eventnet.stats[as.character(eventnet.stats$SOURCE) != as.character(eventnet.stats$TARGET),]&lt;br /&gt;
A first very simple model is a logit model for the probability that an edit from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; is an &amp;quot;undo&amp;quot; edit - explained by the past deletions in the other direction (that is from &#039;&#039;target&#039;&#039; directed to the &#039;&#039;source&#039;&#039; node).&lt;br /&gt;
  model.1 &amp;lt;- glm(is.undo ~ 1 + negative_reciprocity, family = binomial(link=logit), data = eventnet.stats)&lt;br /&gt;
  summary(model.1)&lt;br /&gt;
A summary of the estimated model yields (among others) the following output:&lt;br /&gt;
  glm(formula = is.undo ~ 1 + negative_reciprocity, family = binomial(link = logit), data = eventnet.stats)&lt;br /&gt;
  Coefficients:&lt;br /&gt;
                       Estimate Std. Error z value Pr(&amp;gt;|z|)    &lt;br /&gt;
  (Intercept)           0.49213    0.02175  22.630  &amp;lt; 2e-16 ***&lt;br /&gt;
  negative_reciprocity  0.61765    0.20475   3.017  0.00256 ** &lt;br /&gt;
  ---&lt;br /&gt;
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 &lt;br /&gt;
The interpretation is that there seems to be a habit of &amp;quot;retaliate&amp;quot; deletions: if &#039;&#039;target&#039;&#039; has undone edits of &#039;&#039;source&#039;&#039; then there is an increased probability (postitive coefficient for the &#039;&#039;negative_reciprocity&#039;&#039; statistic) that &#039;&#039;source&#039;&#039; makes edits of &#039;&#039;target&#039;&#039; undone.&lt;br /&gt;
&lt;br /&gt;
A more complex model tests for structural balance effects&lt;br /&gt;
  model.2 &amp;lt;- glm(is.undo ~ 1 +  friend_of_friend + enemy_of_friend + &lt;br /&gt;
                                friend_of_enemy + enemy_of_enemy,&lt;br /&gt;
                                family = binomial(link=logit), data = eventnet.stats)&lt;br /&gt;
leading to the following estimates.&lt;br /&gt;
  Coefficients:&lt;br /&gt;
                   Estimate Std. Error z value Pr(&amp;gt;|z|)    &lt;br /&gt;
  (Intercept)       0.46288    0.02270  20.393  &amp;lt; 2e-16 ***&lt;br /&gt;
  friend_of_friend  0.05798    0.08871   0.654  0.51340    &lt;br /&gt;
  enemy_of_friend   0.20675    0.07022   2.945  0.00323 ** &lt;br /&gt;
  friend_of_enemy   0.92448    0.10156   9.102  &amp;lt; 2e-16 ***&lt;br /&gt;
  enemy_of_enemy   -0.18435    0.02766  -6.666 2.63e-11 ***&lt;br /&gt;
  ---&lt;br /&gt;
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1&lt;br /&gt;
The interpretation of the estimated coefficient is as follows (also see the four illustrative images below).&lt;br /&gt;
&lt;br /&gt;
[[File:Friend_of_friend.png|250px]] [[File:Enemy_of_friend.png|250px]] [[File:Friend_of_enemy.png|250px]] [[File:Enemy_of_enemy.png|250px]]&lt;br /&gt;
&lt;br /&gt;
The coefficient associated with the &#039;&#039;enemy_of_friend&#039;&#039; statistic is significantly positive. This implies that there is an increase probability for &#039;&#039;source&#039;&#039; undoing an edit of &#039;&#039;target&#039;&#039; if &#039;&#039;target&#039;&#039; has past disagreements with another user with which &#039;&#039;source&#039;&#039; has past agreements (second image in the row above). A similar effect has been found if &#039;&#039;target&#039;&#039; has past agreements with another user with past disagreements with &#039;&#039;source&#039;&#039; (positive parameter associated with the &#039;&#039;friend_of_enemy&#039;&#039; statistic and third image in the row above). The parameter associated with &#039;&#039;enemy_of_enemy&#039;&#039; is significantly negative; this implied that if both, &#039;&#039;source&#039;&#039; and &#039;&#039;target&#039;&#039; have past disagreements with a common other node (forth image), then they have a decreased probability of undoing each others edits. While these three effects are in line with the predictions of [[structural balance theory]], there is no significant parameter associated with the &#039;&#039;friend_of_friend&#039;&#039; statistic (first image in the row above).&lt;br /&gt;
&lt;br /&gt;
See more on structural balance theory in the context of Wikipedia edit networks in J&amp;amp;uuml;rgen Lerner, Ulrik Brandes, Patrick Kenis, and Denise van Raaij: [http://www.transcript-verlag.de/ts1927/ts1927.php &#039;&#039;&#039;Modeling Open, Web-based Collaboration Networks: The Case of Wikipedia&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
== The network of &#039;&#039;simple&#039;&#039; edit events ==&lt;br /&gt;
&lt;br /&gt;
The [[WikiEvent_(software)|&#039;&#039;&#039;WikiEvent&#039;&#039;&#039; software]] offers the possibility to compute &#039;&#039;simple&#039;&#039; edit events from a (potentially huge) set of Wikipedia pages. A &#039;&#039;&#039;simple edit event&#039;&#039;&#039; is a directed, time-stamped event from a user &#039;&#039;U&#039;&#039; to a page &#039;&#039;P&#039;&#039; encoding that &#039;&#039;U&#039;&#039; made some edit on page &#039;&#039;P&#039;&#039; at the given time point. Simple edit events do not encode the type of an edit, nor the amount of text changed, nor the other users whose text has been changed (if any). A single edit on a Wikipedia page, thus, results in exactly one simple edit event - while several (&#039;&#039;not simple&#039;&#039;) edit events might result from one edit. To determine the edit events, WikiEvent does not even have to look at the page text - therefore the current text of any revision does not even have to be downloaded and the data collection and processing is much faster. Simple edit events are most interesting if they are computed from more than just one page (the simple edit events from one page just form a star with the page in the center), for instance on all pages that are relevant for a certain topic.&lt;br /&gt;
&lt;br /&gt;
Since the page text is not necessary for computing simple edit events, it is possible to do this from history files that just contain meta-information about the page, author, and time stamp. Such &#039;&#039;&#039;stub&#039;&#039;&#039; files are provided in the [http://dumps.wikimedia.org/backup-index.html Wikimedia backup dumps]. For instance, to download meta-data about the complete English-language Wikipedia, follow the &#039;&#039;&#039;enwiki&#039;&#039;&#039;-link on that page, search for &#039;&#039;&#039;enwiki-&amp;lt;day_of_backup&amp;gt;-stub-meta-history.xml.gz&#039;&#039;&#039;, and download this file. On July 2, 2012 the compressed file had a size of 25 gigabyte and after unpacking it a size of more than 130 gigabyte. Such large files can be processed by WikiEvent because processing can be done in a single pass over the file. (Reading such a file from the hard disc can take a few hours but certainly less than a day with current standard desktop computers.) Note that simple edit events &#039;&#039;can&#039;&#039; also be computed from complete history files that do contain the page text.&lt;br /&gt;
&lt;br /&gt;
To extract simple edit events click on &#039;&#039;&#039;extract simple edit events&#039;&#039;&#039; in the &#039;&#039;&#039;page&#039;&#039;&#039; menu of WikiEvent. You have to specify a file containing the titles of pages for which edit events should be extracted (we say more on this below), a history file (which can be a stub file without page text), and an output directory. WikiEvent then creates three files in the output directory, one containing the simple edit events, one with a mapping from numerical &#039;&#039;user ids&#039;&#039; to user names, and one with a mapping from numerical &#039;&#039;page ids&#039;&#039; to page titles.&lt;br /&gt;
&lt;br /&gt;
[[File:Wikipedia_extract_simple_edit_events.png]]&lt;br /&gt;
  &lt;br /&gt;
The input file with the page titles that has to be specified must contain one title per line - and nothing else. For instance, we created a file containing all page titles that include the terms &#039;&#039;social&#039;&#039; and &#039;&#039;network&#039;&#039; (for reproducability, this file is available at [[Media:SocialNetworkPageTitles.zip]]). Page titles are case-sensitive, for instance, &#039;&#039;Social network analysis&#039;&#039; points to a different page than &#039;&#039;Social Network Analysis&#039;&#039;. The first few lines of this file look like this.&lt;br /&gt;
  Social network&lt;br /&gt;
  Social networking&lt;br /&gt;
  Socialist Solidarity Network&lt;br /&gt;
  Internet social network&lt;br /&gt;
  Social Networking&lt;br /&gt;
  Social networks&lt;br /&gt;
  Internet social networks&lt;br /&gt;
  Social Science Research Network&lt;br /&gt;
  Socialist Organizing Network&lt;br /&gt;
  Social Network Analysis&lt;br /&gt;
  Socialist Unity Network&lt;br /&gt;
  ...&lt;br /&gt;
and the file contains 149 titles.&lt;br /&gt;
&lt;br /&gt;
The resulting three files are available at [[Media:Social_network_simple_edit_events.zip]]. The event file &amp;lt;code&amp;gt;Social_network_SimpleEditEvents.csv&amp;lt;/code&amp;gt; contains more than 23,000 events. It can be imported into visone in a similar way as described [[Wikipedia_edit_networks_(tutorial)#Importing_edit_event_networks_into_visone|above]] (just that there are no event types and weights). A snapshot of this network in the year 2006 looks like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Social_Network_SimpleEditEvents_(2006).png|400px]]&lt;br /&gt;
&lt;br /&gt;
== The discussion network ==&lt;br /&gt;
&lt;br /&gt;
In principle, the extraction of edit events could be done for pages of all types - including [http://en.wikipedia.org/wiki/Wikipedia:Talk_page_guidelines discussion pages]. However, this would not capture the fact that the editing on discussion pages follows a different logic than the editing on content pages. On discussion pages it is rather unusual that edits are made undone; on the other hand users often &#039;&#039;&#039;reply&#039;&#039;&#039; to posts of other users. To better represent the communication structure of talk pages, WikiEvent offers the possibility to &#039;&#039;&#039;extract talk events&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Wikipedia_extract_talk_events.png]]&lt;br /&gt;
&lt;br /&gt;
The discussion around a page is structured by &#039;&#039;&#039;discussion threads&#039;&#039;&#039;. A new thread is marked by a section headline - typically describing the subject to discuss or a question that the users wants to be answered. Other users can reply by writting their message under the same headline. After having downloaded the history of the page [http://en.wikipedia.org/wiki/Talk:Social_network_analysis Talk:Social network analysis] (for instance) and having extracted the &#039;&#039;&#039;talk events&#039;&#039;&#039; with WikiEvent, the first few lines of the resulting event file look like the following.&lt;br /&gt;
&lt;br /&gt;
  ThreadHeadline;Time(calendar);Time(milliseconds);ActiveUser;DiscussionType;CharacterCount;IndexInThread;Target;ThreadInitiator;PreceedingAuthors...&lt;br /&gt;
  &amp;quot;== Dunbar&#039;s 150 rule ==&amp;quot;;&amp;quot;2004-07-29T13:22:39Z&amp;quot;;1091100159000;&amp;quot;200.225.194.49&amp;quot;;initialized_thread;499;0;&amp;quot;== Dunbar&#039;s 150 rule ==&amp;quot;;&amp;quot;200.225.194.49&amp;quot;;&lt;br /&gt;
  &amp;quot;==Expansion==&amp;quot;;&amp;quot;2004-10-30T06:09:59Z&amp;quot;;1099109399000;&amp;quot;Goodoldpolonius&amp;quot;;initialized_thread;321;0;&amp;quot;==Expansion==&amp;quot;;&amp;quot;Goodoldpolonius&amp;quot;;&lt;br /&gt;
  &amp;quot;== Dunbar&#039;s 150 rule ==&amp;quot;;&amp;quot;2005-01-05T18:09:43Z&amp;quot;;1104944983000;&amp;quot;AndrewGray&amp;quot;;replied_to;274;1;&amp;quot;200.225.194.49&amp;quot;;&amp;quot;200.225.194.49&amp;quot;;&amp;quot;200.225.194.49&amp;quot;&lt;br /&gt;
  &amp;quot;== small world effect redirect ==&amp;quot;;&amp;quot;2005-03-23T21:29:57Z&amp;quot;;1111609797000;&amp;quot;Boud&amp;quot;;initialized_thread;0;0;&amp;quot;== small world effect redirect ==&amp;quot;;&amp;quot;Boud&amp;quot;;&lt;br /&gt;
  &amp;quot;==Image==&amp;quot;;&amp;quot;2005-03-27T05:01:50Z&amp;quot;;1111892510000;&amp;quot;Goodoldpolonius2&amp;quot;;initialized_thread;663;0;&amp;quot;==Image==&amp;quot;;&amp;quot;Goodoldpolonius2&amp;quot;;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-04-03T01:32:35Z&amp;quot;;1112484755000;&amp;quot;CesarB&amp;quot;;initialized_thread;393;0;&amp;quot;== External links ==&amp;quot;;&amp;quot;CesarB&amp;quot;;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-04-03T02:07:18Z&amp;quot;;1112486838000;&amp;quot;Goodoldpolonius2&amp;quot;;replied_to;458;1;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-05-02T06:07:09Z&amp;quot;;1115006829000;&amp;quot;AlanAu&amp;quot;;replied_to;402;2;&amp;quot;Goodoldpolonius2&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-05-06T22:39:28Z&amp;quot;;1115411968000;&amp;quot;AlanAu&amp;quot;;replied_to;135;3;&amp;quot;AlanAu&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;,&amp;quot;AlanAu&amp;quot;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-05-06T22:40:30Z&amp;quot;;1115412030000;&amp;quot;AlanAu&amp;quot;;replied_to;5;4;&amp;quot;AlanAu&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-05-06T23:12:26Z&amp;quot;;1115413946000;&amp;quot;Goodoldpolonius2&amp;quot;;replied_to;232;5;&amp;quot;AlanAu&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-05-13T18:05:40Z&amp;quot;;1116000340000;&amp;quot;82.149.68.78&amp;quot;;replied_to;181;6;&amp;quot;Goodoldpolonius2&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;&lt;br /&gt;
  &amp;quot;== External links ==&amp;quot;;&amp;quot;2005-05-22T18:22:01Z&amp;quot;;1116778921000;&amp;quot;AlanAu&amp;quot;;replied_to;365;7;&amp;quot;82.149.68.78&amp;quot;;&amp;quot;CesarB&amp;quot;;&amp;quot;CesarB&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;AlanAu&amp;quot;,&amp;quot;Goodoldpolonius2&amp;quot;,&amp;quot;82.149.68.78&amp;quot;&lt;br /&gt;
  &amp;quot;== suggested additions ==&amp;quot;;&amp;quot;2005-05-26T03:01:44Z&amp;quot;;1117069304000;&amp;quot;AdamRetchless&amp;quot;;initialized_thread;913;0;&amp;quot;== suggested additions ==&amp;quot;;&amp;quot;AdamRetchless&amp;quot;;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
The file is a table encoded in a CSV file whose entries are separated by semicolons (&#039;&#039;&#039;;&#039;&#039;&#039;). The columns encode (from left to right).&lt;br /&gt;
* The thread &#039;&#039;&#039;headline&#039;&#039;&#039;, i.e., the subject of the discussion topic.&lt;br /&gt;
* The &#039;&#039;&#039;time&#039;&#039;&#039; given as a date/time string.&lt;br /&gt;
* Once again the &#039;&#039;&#039;time&#039;&#039;&#039; given as a number (milliseconds since January 1, 1970; see above).&lt;br /&gt;
* The &#039;&#039;&#039;active user&#039;&#039;&#039; which is the one who made the post.&lt;br /&gt;
* The discussion &#039;&#039;&#039;type&#039;&#039;&#039; of the edit which can be &#039;&#039;initialized_thread&#039;&#039; or &#039;&#039;replied_to&#039;&#039;.&lt;br /&gt;
* The &#039;&#039;&#039;character count&#039;&#039;&#039; indicating number of characters posted in this edit; this might be taken as a (very coarse) indicator for the amount of work invested in the post.&lt;br /&gt;
* The &#039;&#039;&#039;index&#039;&#039;&#039; of this post in its thread; this is a number counting the replies: 0 for the thread initialization, 1 for the first reply, 2 for the second reply, and so on.&lt;br /&gt;
* The &#039;&#039;&#039;target&#039;&#039;&#039; of the post. This is the thread headline if the type of the post is &#039;&#039;initialized_thread&#039;&#039; and it is the user who made the last preceeding post to the same thread.&lt;br /&gt;
* The &#039;&#039;&#039;initiator&#039;&#039;&#039; of the thread.&lt;br /&gt;
* Finally a list of all &#039;&#039;&#039;preceeding authors&#039;&#039;&#039; separated by commas (&#039;&#039;&#039;,&#039;&#039;&#039;); first the user who initialized the thread, then the user who made the first reply, etc.&lt;br /&gt;
&lt;br /&gt;
To import such a talk-event network into visone, chose &#039;&#039;&#039;files of type&#039;&#039;&#039;=&#039;&#039;event list files&#039;&#039; after clicking on &#039;&#039;&#039;open&#039;&#039;&#039; in the &#039;&#039;&#039;file&#039;&#039;&#039; menu. The settings for the cell delimiter and textframe are the same (semicolon and double-quotes). Then, as for the edit events you have to specify event format, iterator, network, and (potentially) statistics. For a possible choice on the event format see the screenshot below.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_format_talknet.png]]&lt;br /&gt;
&lt;br /&gt;
In the event iterator tab we chose to create a snapshot after every 200 days (leading to 14 snapshots). In the event network tab we create two attribute functions counting the number of &#039;&#039;initiate&#039;&#039; events or &#039;&#039;reply&#039;&#039; events and give them a halftime equal to the time span between snapshots.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_network_talknet.png]]&lt;br /&gt;
&lt;br /&gt;
After creating the 14 snapshots, encoding involvement in the discussion by node size and number of thread initializations by color, and visualizing the network collection with a [[Collections_(tutorial)#Dynamic_visualization_and_animation_of_a_network_collection|dynamic layout]] we can come up with the following still images (which are more interesting to view in an [[Collections_(tutorial)#Dynamic_visualization_and_animation_of_a_network_collection|animation]]).&lt;br /&gt;
&lt;br /&gt;
[[File:Talk.Social_network_analysis.png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(13028).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(13228).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(13428).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(13628).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(13828).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(14028).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(14228).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(14428).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(14628).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(14828).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(15028).png|200px]]&lt;br /&gt;
[[File:Talk.Social_network_analysis(15228).png|200px]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
Published papers that propose and/or make use of Wikipedia edit networks include the following.&lt;br /&gt;
* J&amp;amp;uuml;rgen Lerner, Ulrik Brandes, Patrick Kenis, and Denise van Raaij: [http://www.transcript-verlag.de/ts1927/ts1927.php &#039;&#039;&#039;Modeling Open, Web-based Collaboration Networks: The Case of Wikipedia&#039;&#039;&#039;]. In Markus Gamper, Linda Reschke, Michael Sch&amp;amp;ouml;nhuth (Eds.): Knoten und Kanten 2.0, pp 141-162. transcript-Verlag, 2012.&lt;br /&gt;
* J&amp;amp;uuml;rgen Lerner, Patrick Kenis, Denise van Raaij and Ulrik Brandes: [http://www.sciencedirect.com/science/article/pii/S0263237311000053 &#039;&#039;&#039;Will they stay or will they go? How network properties of WebICs predict dropout rates of valuable Wikipedians&#039;&#039;&#039;]. European Management Journal, 29(5):404-413, 2011.&lt;br /&gt;
* Ulrik Brandes, Patrick Kenis, J&amp;amp;uuml;rgen Lerner, and Denise van Raaij: [http://www.inf.uni-konstanz.de/algo/publications/bklv-nacsw-09.pdf &#039;&#039;&#039;Network Analysis of Collaboration Structure in Wikipedia&#039;&#039;&#039;]. Proc. 18th Intl. World Wide Web Conference (WWW 2009).&lt;br /&gt;
&lt;br /&gt;
More technical details about the computation of Wikipedia edit networks can be found in &lt;br /&gt;
* Ulrik Brandes, Patrick Kenis, J&amp;amp;uuml;rgen Lerner, and Denise van Raaij: [http://www.inf.uni-konstanz.de/algo/publications/bklv-cwen-09.pdf &#039;&#039;&#039;Computing Wikipedia Edit Networks&#039;&#039;&#039;]. Technical Report, 2009.&lt;br /&gt;
&lt;br /&gt;
The techniques for modeling conditional network event types are proposed in &lt;br /&gt;
* Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders: [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. Proc. 2009 Intl. Conf. Advances in Social Network Analysis and Mining (ASONAM 2009), pp.200-205. IEEE Computer Society, 2009.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Event_networks_(tutorial)&amp;diff=1678</id>
		<title>Event networks (tutorial)</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Event_networks_(tutorial)&amp;diff=1678"/>
		<updated>2018-06-18T11:29:18Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Statistical modeling of the conditional event type or weight */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Event_network_gulf_example.png|300px|thumb]]&lt;br /&gt;
The links in an &#039;&#039;&#039;event network&#039;&#039;&#039; encode time stamped interaction among actors, for instance, users sending emails to other users. There is an important difference to networks of &#039;&#039;relational states&#039;&#039; - such as friendship networks. To illustrate the difference, when two actors are friends of each other at some instant in time, then - &#039;&#039;if nothing happens in between&#039;&#039; - they are still friends in the very near future. In contrast, if someone sends and email to another person at some instant in time, then he/she does not necessarily send an email to the same person in the very next instant in time. Stated otherwise, relations like &#039;&#039;friendship&#039;&#039; have inertia (something has to happen to change them), while relational events mark time points of interaction.&lt;br /&gt;
&lt;br /&gt;
This tutorial is a practically oriented, example based, &amp;quot;how-to&amp;quot; guide illustrating the import, transformation, visualization, and analysis of event networks with visone. More background on event networks can be found in &lt;br /&gt;
* Carter T. Butts: [http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9531.2008.00203.x/full &#039;&#039;&#039;A Relational event framework for social action&#039;&#039;&#039;]. &#039;&#039;Sociological Methodology&#039;&#039; 38(1):155-200, 2008.&lt;br /&gt;
* Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders: [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. Proc. 2009 Intl. Conf. Advances in Social Network Analysis and Mining (ASONAM 2009), pp.200-205. IEEE Computer Society, 2009.&lt;br /&gt;
and in other papers linked in the [[Event_networks_(tutorial)#References|references]].&lt;br /&gt;
&lt;br /&gt;
The functionality for statistical analysis of event networks has been superseded by the [http://algo.uni-konstanz.de/software/eventnet/ &#039;&#039;&#039;event network analyzer (eventnet)&#039;&#039;&#039;]. However, visone can still be used for visual analysis of event networks.&lt;br /&gt;
&lt;br /&gt;
Please address questions and comments about this tutorial to me ([[User:Lerner|J&amp;amp;uuml;rgen Lerner]]).&lt;br /&gt;
&lt;br /&gt;
== Example data: networks of political conflict and cooperation ==&lt;br /&gt;
&lt;br /&gt;
This tutorial uses for illustration networks of events among political actors that have been collected by the [http://eventdata.psu.edu/ Penn State Event Data Project] (formerly &#039;&#039;Kansas Event Data System&#039;&#039;). Specifically, we use data encoding events in or around the Persian Gulf region in the time from 1979 to 1999. This data set is described in and linked from the page on [[Penn_State_Event_Data|&#039;&#039;&#039;Penn State Event Data&#039;&#039;&#039;]]. To follow the steps outlined in this tutorial you should download the file [[Media:Gulf_events_preprocessed.zip|Gulf_events_preprocessed.zip]].&lt;br /&gt;
&lt;br /&gt;
Another specific application area for event networks - using different example data - is treated in the [[Wikipedia_edit_networks_(tutorial)|tutorial on Wikipedia edit networks]].&lt;br /&gt;
&lt;br /&gt;
== Importing event networks ==&lt;br /&gt;
&lt;br /&gt;
visone can import event lists from comma-separted-value (CSV) files. These files must contain a header in the first line (giving the column labels) followed by any number of lines each of which encodes one event. For instance, some lines in the example file look like this.&lt;br /&gt;
  &amp;quot;WEIS.code&amp;quot;;&amp;quot;Time&amp;quot;;&amp;quot;Source&amp;quot;;&amp;quot;Target&amp;quot;;&amp;quot;Description&amp;quot;;&amp;quot;Goldstein.weight&amp;quot;;&amp;quot;Type&amp;quot;&lt;br /&gt;
  ...&lt;br /&gt;
  222;980213;&amp;quot;ISR&amp;quot;;&amp;quot;WES&amp;quot;;&amp;quot;NONMIL DESTR&amp;quot;;-8.7;&amp;quot;conflict&amp;quot;&lt;br /&gt;
  223;920717;&amp;quot;SYR&amp;quot;;&amp;quot;ISR&amp;quot;;&amp;quot;MIL ENGAGEME&amp;quot;;-10;&amp;quot;conflict&amp;quot;&lt;br /&gt;
  ...&lt;br /&gt;
To open such a file, click on &#039;&#039;&#039;open&#039;&#039;&#039; in the [[File_menu|&#039;&#039;&#039;file&#039;&#039;&#039; menu]], select &#039;&#039;&#039;files of type:&#039;&#039;&#039; &#039;&#039;event list files (.csv, .txt)&#039;&#039;, navigate to the file that you want to open, and click on &#039;&#039;&#039;ok&#039;&#039;&#039;. In the import options dialog (see below) you have to specify the character that separates the different entries in each line - this is the semicolon (&#039;&#039;&#039;;&#039;&#039;&#039;) in our example file - and a character enclosing text (if any) - this is the double quotes (&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;) in our example file.&lt;br /&gt;
&lt;br /&gt;
[[File:Import_options_event_list.png]]&lt;br /&gt;
&lt;br /&gt;
To find out the right settings you can look at the file tab in the import options dialog showing you part of the input file.&lt;br /&gt;
&lt;br /&gt;
visone can now read the various entries of the input file - and you have to specify how these should be mapped to the resulting network in the dialog &#039;&#039;&#039;EventNetwork specification&#039;&#039;&#039; (shown below). Concretely you have to specify how the various components of an event are encoded in the file (&#039;&#039;Event format&#039;&#039; tab); how to iterate over the network sequence (&#039;&#039;Event iterator&#039;&#039; tab); how the events are mapped to the network&#039;s link attributes (&#039;&#039;Event network&#039;&#039; tab); and, if desired, which statistics should be computed while constructing the event network (&#039;&#039;Eventnet statistics&#039;&#039; tab). The tabs should be filled out in the order as they are numbered in the dialog since choice-possibilities for the latter tabs depend on previous settings. If you make changes in some tab you have to subsequently set (again) the values for the latter tabs.&lt;br /&gt;
&lt;br /&gt;
=== Event format ===&lt;br /&gt;
&lt;br /&gt;
In the event format tab (see the image below) you first have to specify which columns of the input file hold the information about the five components of an event (these are &#039;&#039;source&#039;&#039;, &#039;&#039;target&#039;&#039;, &#039;&#039;time&#039;&#039;, &#039;&#039;type&#039;&#039;, and &#039;&#039;weight&#039;&#039;). In our example, you can set the values as in the image below. The meaning of the five components is explained in the following.&lt;br /&gt;
*&#039;&#039;&#039;SOURCE&#039;&#039;&#039; The source actor is the one who initiates the event. &lt;br /&gt;
*&#039;&#039;&#039;TARGET&#039;&#039;&#039; The target actor is the one who receives the event.&lt;br /&gt;
*&#039;&#039;&#039;TIME&#039;&#039;&#039;  The time denotes when the event happened. visone supports a wide range of time encodings - from numeric times to strings representing calendar date and time in more common or less common formats. Furthermore, a time unit can be specified that defines the precision of the time variable.&lt;br /&gt;
*&#039;&#039;&#039;TYPE&#039;&#039;&#039; The event type is a categorical variable specifying what happened. In our example, there are different choices for event types. One possibility is the rather coarse distinction between cooperative (positive) and conflictive (negative) events. The other possibility is to distinguish between all more than 100 different WEIS event types. An intermediate possibility (and that&#039;s what we are going to do in the following) is to use just the distinction between conflict and cooperation but to distinguish quantitatively between &amp;quot;strong&amp;quot; events and &amp;quot;weak&amp;quot; events by the event weight. For instance, the use of military force is counted more seriously than a warning - even though both are conflictive events.&lt;br /&gt;
*&#039;&#039;&#039;WEIGHT&#039;&#039;&#039; The event weight is a numeric variable quantifying the &#039;&#039;intensity&#039;&#039; of the event with respect to the event type (see the example above). For instance, &#039;&#039;military engagement&#039;&#039; has a weight of -10.0 while warnings have a weight of -3.0.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_format_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
After these five components have been chosen visone needs some information about the interpretation of time. The first choice is the selection between &#039;&#039;&#039;numeric time&#039;&#039;&#039; (if the time fields correspond to integer numbers) or &#039;&#039;&#039;calendar time&#039;&#039;&#039; (if time fields can somehow, specified below, be turned into a date/time). We have calendar time in our example.&lt;br /&gt;
&lt;br /&gt;
If time is given by calendar, a &#039;&#039;&#039;time format pattern&#039;&#039;&#039; has to be specified. visone proposes some known pattern - among others the pattern &#039;&#039;&#039;yyMMdd&#039;&#039;&#039; which is appropriate for the KEDS event times. (This pattern implies that there are two digits for the year, followed by two digits for the month, followed by two digits for the day of the month; for instance, 940930 for September 30, 1994.) You can enter other than the proposed patterns in the textfield if date/time is formatted differently (see the webpage on the java class [http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html SimpleDateFormat] for guidance). visone assists you in finding the right pattern by showing some date/time strings as they appear in the file and - whenever you select a date format pattern - the dialog shows you the current time formatted by the specified pattern.&lt;br /&gt;
&lt;br /&gt;
Finally, you have to specify a &#039;&#039;&#039;time unit&#039;&#039;&#039;. If time is numeric you have to enter an integer in the textfield. If time is given by calendar you can select a &amp;quot;natural&amp;quot; time unit from &#039;&#039;Millisecond&#039;&#039; to &#039;&#039;Year&#039;&#039;. An appropriate time unit makes the iteration over the event sequence (and potentially the decay of link attributes over time) more intuitive. When computing event network statistics, events that happen within the same time unit are treated as independent of each other. The time of the KEDS events is given by the day. Thus, appropriate time units are &#039;&#039;&#039;DAY&#039;&#039;&#039; or coarser.&lt;br /&gt;
&lt;br /&gt;
Note that the only required information are the columns containing the source and target - for the other components you can take default values (by selecting &#039;&#039;&amp;lt;implied&amp;gt;&#039;&#039; instead of a column header). The default value for the event type is the string &#039;&#039;EVENT&#039;&#039; (taking this default type means that there is no variation in event types - all have the same type); the default weight is equal to 1.0; the default event time is the row number in the input file (so that only the order of events is taken into account).&lt;br /&gt;
&lt;br /&gt;
When all settings in the event format tab are done, you can create the list of events by clicking on the &#039;&#039;&#039;Apply (create events)&#039;&#039;&#039; button. A message informs about the number of events and the number of time units from the first to the last event. (The events are sorted in ascending order by time after reading them - thus, it is not necessary that the events are ordered by time in the input file.)&lt;br /&gt;
&lt;br /&gt;
=== Event iterator ===&lt;br /&gt;
&lt;br /&gt;
In the event iterator tab (see below) you have to specify the start and end time of the time interval to be processed and the delay between network snapshots.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_iterator_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
When the events have been created after filling out the event format tab (see the preceeding section) visone suggests as start time the time of the first event and as end time the time of the last event. If you don&#039;t want to process the whole event sequence you can increase the start time and/or decrease the end time. After clicking on the upper &#039;&#039;&#039;Apply / get info&#039;&#039;&#039; button, visone informs you about the number of events and time units in the specified subsequence. You might just take all events by not changing the interval borders; this includes all events from April 15, 1979 to March 31, 1999 - as can be seen in the dialog.&lt;br /&gt;
&lt;br /&gt;
Then you have to choose the time points when a network snapshot is to be created by specifying the delay between snapshots. You can see in the dialog that the event sequence spans more than 7,200 time units (i.e., days with the current settings) which is almost 20 years. The number of snapshots must be small (some 10 or 20 snapshots are ok), since they are all opened in a new tab in visone. When we want to create a snapshot once a year we specify &#039;&#039;create snapshots after every&#039;&#039; &#039;&#039;&#039;365&#039;&#039;&#039; &#039;&#039;time unit(s)&#039;&#039;. (The number of snapshots is then 20.) visone always creates one snapshot at the end of the event sequence - even if the waiting time is less than the specified number.&lt;br /&gt;
&lt;br /&gt;
=== Event network ===&lt;br /&gt;
&lt;br /&gt;
The tab to specify the event network is the most important one - here you define which &#039;&#039;&#039;link attributes&#039;&#039;&#039; of the event network summarize the past events, how events of various types add to these attributes, and how they change over time. &lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_network_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
The first thing to do is to decide on the link attributes. Here you are free to choose any attribute name (that makes it easy to remember the intuition of the attribute). Furthermore, a halftime - defining how fast attributes decay over time - has to be specified. The halftime has the following effect: when a particular link attribute on a particular dyad (pair or actors) has a value of &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; at time &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, then (if no event on the same dyad happens in between) the value is &amp;lt;math&amp;gt;x/2&amp;lt;/math&amp;gt; at time&lt;br /&gt;
&amp;lt;math&amp;gt;t+halftime&amp;lt;/math&amp;gt;. Intuitively, link attributes with a positive halftime capture &#039;&#039;recent interaction&#039;&#039;; if the halftime gets shorter then they capture even more recent interaction. A halftime equal to zero or negative indicates that the respective attribute does not decay over time; these attributes capture &#039;&#039;past interaction&#039;&#039; irrespective of the elapsed time.&lt;br /&gt;
&lt;br /&gt;
In our concrete example we choose the following link attributes that all have a halftime of (approximately) one year.&lt;br /&gt;
* An attribute &#039;&#039;&#039;cooperation&#039;&#039;&#039; sums up the weights of past cooperative events.&lt;br /&gt;
* The link attribute &#039;&#039;&#039;conflict&#039;&#039;&#039; is similar and sums up past conflictive events. This attribute will also be non-negative; that is, a higher value means more past/recent conflict. (See later how this is achieved.)&lt;br /&gt;
* &#039;&#039;&#039;Interaction&#039;&#039;&#039; sums up the strength of past events - irrespective of whether these are cooperative or conflictive.&lt;br /&gt;
* &#039;&#039;&#039;Interaction (unweighted)&#039;&#039;&#039; sums up the number of past events - irrespective of whether these are cooperative or conflictive and irrespective of their weight.&lt;br /&gt;
* Finally &#039;&#039;&#039;cooperation-conflict&#039;&#039;&#039; sums up the (positive) weights of cooperative events and the (negative) weights of conflictive events. This attribute is positive on dyads that have more cooperative events (or cooperative events with higher weights) and it is negative on dyads on which there are more conflictive events (or more serious conflictive events).&lt;br /&gt;
&lt;br /&gt;
When the link attributes are added (e.g., click on the &#039;&#039;&#039;Add / update all&#039;&#039;&#039; button) you have to specify how the events contribute to them. Clicking on &#039;&#039;&#039;Create weight-function table&#039;&#039;&#039; builds a table that has one row for each link attribute and one column for each event type. In the cell indexed by an attribute &amp;lt;math&amp;gt;attr&amp;lt;/math&amp;gt; and an event type &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; you specify the function mapping weights of events of type &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; to increments of the link attribute &amp;lt;math&amp;gt;attr&amp;lt;/math&amp;gt;. In our example, selecting the function &#039;&#039;Identity&#039;&#039; in the cell indexed by attribute &#039;&#039;cooperation&#039;&#039; and event type &#039;&#039;cooperation&#039;&#039; means that whenever an event of type &#039;&#039;cooperation&#039;&#039; and weight &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; happens then you add &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; to the current value of the &#039;&#039;cooperation&#039;&#039; attribute. If we had chosen &#039;&#039;SquareRoot&#039;&#039; as the weight function in the same cell, then we would add &amp;lt;math&amp;gt;\sqrt{w}&amp;lt;/math&amp;gt; to the &#039;&#039;cooperation&#039;&#039; attribute whenever an event of type &#039;&#039;cooperation&#039;&#039; and weight &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; happens. The weight-function identifier &#039;&#039;N/A&#039;&#039; means that events of that type do not cause any change of the respective attribute. For instance, events of type &#039;&#039;conflict&#039;&#039; do not change the attribute &#039;&#039;cooperation&#039;&#039;. Note that for the attribute &#039;&#039;conflict&#039;&#039; and the type &#039;&#039;conflict&#039;&#039; we choose the weight function &#039;&#039;MinusIdentity&#039;&#039;; thus, when a conflictive event with weight -10 happens we add the (positive) value 10 to the attribute &#039;&#039;conflict&#039;&#039; (thereby the &#039;&#039;conflict&#039;&#039; attribute is always non-negative and higher values indicate more past conflicts). The settings for all attributes and types can be seen in the above image.&lt;br /&gt;
&lt;br /&gt;
After these settings have been done you can create the snapshots by clicking on the button &#039;&#039;&#039;Process event network!&#039;&#039;&#039;. If you want to create a statistics table you first have to fill out the tab number 4. We turn to the statistics [[#Event_statistics|later]] and create the snapshots now.&lt;br /&gt;
&lt;br /&gt;
== Visualization and analysis of event networks ==&lt;br /&gt;
&lt;br /&gt;
With the above settings visone opens 20 network tabs. The nodes in the network have an attribute &#039;&#039;label&#039;&#039; that holds the names of the source or target nodes as they are given in the event list file. The links have (in our example) five numerical attributes encoding the values of the link attribute functions at the time of the snapshot. These link attributes allow to compute, for instance, the total amount of conflict or cooperation received or initialized by the actors (compute the indegree respectively outdegree with link strength set to &#039;&#039;conflict&#039;&#039; or &#039;&#039;cooperation&#039;&#039; or any other link attribute). These degrees can, for instance, be used for visual filtering by [[Visualization_tab|mapping]] the centrality values to size or color of the nodes or selecting nodes by importance. Examples for visualization of event networks can be found in the [[Wikipedia_edit_networks_(tutorial)|tutorial on Wikipedia edit networks]]. Note that all analysis and visualization tasks can be done in parallel for all open network tabs and note that visone also offers to compute a [[Visualization_tab#dynamic_layout|dynamic layout]] that can be animated; this is illustrated in the [[Collections_(tutorial)|tutorial on network collections]]. The image below is an example placing the most involved actors in the center of the drawing and coding rather cooperative ties in blue and rather conflictive ties in red.&lt;br /&gt;
&lt;br /&gt;
[[File:Event_network_gulf_example.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Statistical modeling of the conditional event type or weight ==&lt;br /&gt;
&lt;br /&gt;
While importing event networks it is possible to compute and save network statistics associated with dyadic events that can be used to build and estimate a statistical model for the &#039;&#039;&#039;conditional event type&#039;&#039;&#039;. Such models have been proposed in Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders (2009): [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. These models can be used to test whether the network of past events explains the likelihood that future events among a given pair of actors are rather cooperative or rather conflictive, for instance&lt;br /&gt;
* Do actors have a tendency to fight those that attacked them in the past? (Tendency to retalliate.)&lt;br /&gt;
* Do actors have a tendency to cooperated with the enemies of their enemies, to fight the friends of their enemies, etc?&lt;br /&gt;
&lt;br /&gt;
The event network statistics can be computed during importing the data, are saved in a file, and can then be analyzed with any statistical software, such as [http://www.r-project.org/ &#039;&#039;&#039;R&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
It is important to understand that with the statistics table computed by visone you can estimate a model for the &#039;&#039;&#039;conditional&#039;&#039;&#039; event type, given that an event happens, as this has been defined in Brandes et al.(2009). With the visone output you cannot model the likelihood that two actors interact at all. (Such models can be specified and fitted, for instance, with the R package [http://cran.r-project.org/web/packages/relevent/index.html &#039;&#039;&#039;relevent&#039;&#039;&#039;] or with the software [http://algo.uni-konstanz.de/software/eventnet/ &#039;&#039;&#039;event network analyzer (eventnet)&#039;&#039;&#039;], where in the latter you can choose whether or not to condition on the sources or targets or events.) More on the difference between modeling the conditional event type and the marginal (unconditional) event type can be found in the slides [[Media:Lerner_Sunbelt12.pdf|&#039;&#039;&#039;Modeling Frequency and Type of Interaction in Event Networks&#039;&#039;&#039; (.pdf)]].&lt;br /&gt;
&lt;br /&gt;
To make the analysis comparable to the one presented in Brandes et al.(2009), we modify the link attributes in the event network tab slightly (see below). Specifically we set the halftime to 30 days and include only the attributes &#039;&#039;conflict&#039;&#039; and &#039;&#039;cooperation&#039;&#039;. (The settings in the event format stay the same and in the event iterator tabs you may set the delay between snapshots to 7291 to create only one snapshot.)&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_network_KEDS30.png]]&lt;br /&gt;
&lt;br /&gt;
=== Event statistics ===&lt;br /&gt;
&lt;br /&gt;
The statistics to be computed are defined in the eventnet statistics tab of the import dialog (see below). You first have to specify whether a statistic table should be created at all; if yes an output file has to be chosen and one or more statistics have to be defined.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_statistics_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
The statistics are used to model events in the following way: whenever an event happens that is initiated by a &#039;&#039;&#039;source&#039;&#039;&#039; node and directed to a &#039;&#039;&#039;target&#039;&#039;&#039; node, then the dyad &#039;&#039;(source, target)&#039;&#039; is embedded in the network of past events, i.e., all events that happened before the current event. The event network statistics describe relevant aspects of this network of past events with respect to the specific dyad. visone offers three different types of statistics - dyad statistics, degree statistics, and triangle statistics - that can be varied with respect to edge direction and/or link attributes. After defining the statistics they have to be added to the event network by clicking on the &#039;&#039;&#039;Add / update&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
==== Dyad statistics ====&lt;br /&gt;
&lt;br /&gt;
Dyad statistics encode aspects of the past events from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; or in the other direction. That is the dyad statistics encode how &#039;&#039;source&#039;&#039; interacted with &#039;&#039;target&#039;&#039; in the past or how &#039;&#039;target&#039;&#039; interacted with &#039;&#039;source&#039;&#039;. In our exmple we define four different dyad statistics that are obtained by switching the direction (&#039;&#039;inertia&#039;&#039; if &#039;&#039;&#039;OUT&#039;&#039;&#039;-going events - from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; - are considered and &#039;&#039;reciprocity&#039;&#039; if &#039;&#039;&#039;IN&#039;&#039;&#039;-coming events - from &#039;&#039;target&#039;&#039; to &#039;&#039;source&#039;&#039; - are considered) and the link attribute (&#039;&#039;positive&#039;&#039; for past cooperation and &#039;&#039;negative&#039;&#039; for past conflict).&lt;br /&gt;
&lt;br /&gt;
Intuitively, if actors tend to retalliate, then we expect that the &#039;&#039;negative reciprocity&#039;&#039; statistic is negatively related with the weight of the next event.&lt;br /&gt;
&lt;br /&gt;
==== Degree statistics ====&lt;br /&gt;
&lt;br /&gt;
Degree statistics summarize the past events around the dyad &#039;&#039;(source, target)&#039;&#039; by the weighted (out-/in-) degree of &#039;&#039;source&#039;&#039; or &#039;&#039;target&#039;&#039;. The links can be weighted by any attribute. For instance, the &#039;&#039;neg_outdeg_source&#039;&#039; statistic adds up the values of the &#039;&#039;conflict&#039;&#039; attribute on all links starting at the &#039;&#039;source&#039;&#039; node (not only those that are directed to &#039;&#039;target&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Intuitively, if actors that initiated a lot of conflictive events in the past tend to do so in the future, then we expect a negative relation between the &#039;&#039;neg_outdeg_source&#039;&#039; statistic and the weight of events. &lt;br /&gt;
&lt;br /&gt;
==== Triangle statistics ====&lt;br /&gt;
&lt;br /&gt;
Triangle statistics summarize the network of past events around the dyad &#039;&#039;(source, target)&#039;&#039; by typed and weighted indirect relations from &#039;&#039;source&#039;&#039; over any third node to &#039;&#039;target&#039;&#039; or the other way round. You can select the attributes for the links attached to &#039;&#039;source&#039;&#039; and to &#039;&#039;target&#039;&#039; and the direction which can be &#039;&#039;&#039;OUT&#039;&#039;&#039; (only out-going ties with respect to &#039;&#039;source&#039;&#039;/&#039;&#039;target&#039;&#039;), &#039;&#039;&#039;IN&#039;&#039;&#039; (only in-coming ties), or &#039;&#039;&#039;SYM&#039;&#039;&#039; (adding up the attributes of out-going and in-coming ties). &lt;br /&gt;
&lt;br /&gt;
For instance, the statistic &#039;&#039;enemy_of_friend&#039;&#039; iterates over all actors &#039;&#039;A&#039;&#039; in the network, multiplies the value of the &#039;&#039;cooperation&#039;&#039; attribute on links connecting &#039;&#039;source&#039;&#039; and &#039;&#039;A&#039;&#039; (in both directions) with the value of the &#039;&#039;conflict&#039;&#039; attribute on links connecting &#039;&#039;target&#039;&#039; and &#039;&#039;A&#039;&#039; (in both directions), adds up these products for all &#039;&#039;A&#039;&#039;, and returns the square root of this sum. Intuitively, the value of the &#039;&#039;enemy_of_friend&#039;&#039; statistic on the dyad &#039;&#039;(source, target)&#039;&#039; is high if there are many other actors &#039;&#039;A&#039;&#039; that cooperated with &#039;&#039;source&#039;&#039; and were in conflict with &#039;&#039;target&#039;&#039;; structural balance theory predicts that &#039;&#039;source&#039;&#039; is then more likely to fight &#039;&#039;target&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Starting the computation ====&lt;br /&gt;
&lt;br /&gt;
Once the output file and the statistics are specified, click on the &#039;&#039;&#039;Process event network!&#039;&#039;&#039; button. Snapshots are created as defined in the event iterator tab and statistics are computed as defined in the eventnet statistics tab.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that statistics associated with an event that happens at time &#039;&#039;t&#039;&#039; are only a function of events that happend earlier (strictly before &#039;&#039;t&#039;&#039;) - and do not depend on events that happen in the same time unit.&lt;br /&gt;
&lt;br /&gt;
The computed eventnet statistics file (&#039;&#039;gulf_events_stats.csv&#039;&#039; in our example) is a table in CSV format in which each row corresponds to one event of the input file. The components of the event (source, target, time, type, and weight) are first repeated - followed by the values of all statistics.&lt;br /&gt;
&lt;br /&gt;
Computing the statistics for all 300,000 events may take some five to ten minutes on a current standard laptop. Once the computation is finished you see the message &#039;&#039;processing successfull&#039;&#039; in the eventnet dialog. If you get an error message you might have a look at the visone [[Console|console]] where you can get more information.&lt;br /&gt;
&lt;br /&gt;
=== Modeling the conditional event weight ===&lt;br /&gt;
&lt;br /&gt;
The statistics file can now be analyzed with any statistical software - we describe the following for the [http://www.r-project.org R environment for statistical computing] (also see the visone tutorial on the [[R_console_(tutorial)|R console]]).&lt;br /&gt;
&lt;br /&gt;
First set the R working directory to the directory where the statistics file is located, for instance &lt;br /&gt;
  setwd(&amp;quot;c:/juergen/projects/event_data/keds/Gulf/&amp;quot;)&lt;br /&gt;
To read the file into a table and see some summary statistics type&lt;br /&gt;
  eventnet.stats &amp;lt;- read.csv(&amp;quot;gulf_events_stats.csv&amp;quot;, sep=&amp;quot;;&amp;quot;)&lt;br /&gt;
  summary(eventnet.stats)&lt;br /&gt;
We model only those events that are not self-loops (loops could have been removed already while preprocessing the input event list - these two procedures are not equivalent since in our case statistics are also functions of loops).&lt;br /&gt;
  eventnet.stats &amp;lt;- eventnet.stats[as.character(eventnet.stats$SOURCE) != as.character(eventnet.stats$TARGET),]&lt;br /&gt;
  summary(eventnet.stats)&lt;br /&gt;
A first very simple model is a linear model for the event weigth (from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039;) - explained by the past conflictive events in the other direction (that is from &#039;&#039;target&#039;&#039; directed to the &#039;&#039;source&#039;&#039; node).&lt;br /&gt;
  model.1 &amp;lt;- lm(WEIGHT ~ 1 + negative_reciprocity, data = eventnet.stats)&lt;br /&gt;
  summary(model.1)&lt;br /&gt;
A summary of the estimated model yields (among others) the following output:&lt;br /&gt;
  Coefficients:&lt;br /&gt;
                         Estimate Std. Error t value Pr(&amp;gt;|t|)    &lt;br /&gt;
  (Intercept)          -5.730e-01  8.866e-03  -64.63   &amp;lt;2e-16 ***&lt;br /&gt;
  negative_reciprocity -2.629e-03  2.829e-05  -92.92   &amp;lt;2e-16 ***&lt;br /&gt;
  ---&lt;br /&gt;
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 &lt;br /&gt;
The interpretation is that there seems to be a habit of retalliation: if &#039;&#039;target&#039;&#039; has initiated conflictive events towards &#039;&#039;source&#039;&#039; then the weight of events from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; has a tendency to be smaller (significantly negative coefficient for the &#039;&#039;negative_reciprocity&#039;&#039; statistic) meaning that the event type is drawn towards conflict. The value of the coefficient (about -0.003) seems to be very small. However this parameter summarizes the change in the event weight when &#039;&#039;negative_reciprocity&#039;&#039; increases by one. Typing &lt;br /&gt;
  sd(eventnet.stats$negative_reciprocity)&lt;br /&gt;
we see that the standard deviation of this statistic is around 290 - meaning that the &#039;&#039;negative_reciprocity&#039;&#039; indicator typically varies in the hundreds.&lt;br /&gt;
&lt;br /&gt;
A more complex model tests for structural balance effects, controlling for variation in degrees and direct past interaction. (This is the model taken from Brandes et al.(2009).)&lt;br /&gt;
  model.2 &amp;lt;- lm(WEIGHT ~ 1 + positive_inertia + negative_inertia + &lt;br /&gt;
                         positive_reciprocity + negative_reciprocity + &lt;br /&gt;
                         pos_outdeg_source + neg_outdeg_source + &lt;br /&gt;
                         pos_indeg_source + neg_indeg_source + &lt;br /&gt;
                         pos_outdeg_target + neg_outdeg_target + &lt;br /&gt;
                         pos_indeg_target + neg_indeg_target +&lt;br /&gt;
                         friend_of_friend + friend_of_enemy + &lt;br /&gt;
                         enemy_of_friend + enemy_of_enemy, &lt;br /&gt;
                data = eventnet.stats)&lt;br /&gt;
We get the following results.&lt;br /&gt;
  Coefficients:&lt;br /&gt;
                         Estimate Std. Error t value Pr(&amp;gt;|t|)    &lt;br /&gt;
  (Intercept)          -7.707e-01  1.127e-02 -68.371  &amp;lt; 2e-16 ***&lt;br /&gt;
  positive_inertia      5.814e-03  2.723e-04  21.347  &amp;lt; 2e-16 ***&lt;br /&gt;
  negative_inertia     -2.145e-03  7.214e-05 -29.730  &amp;lt; 2e-16 ***&lt;br /&gt;
  positive_reciprocity  3.071e-03  3.125e-04   9.827  &amp;lt; 2e-16 ***&lt;br /&gt;
  negative_reciprocity -2.188e-03  8.175e-05 -26.768  &amp;lt; 2e-16 ***&lt;br /&gt;
  pos_outdeg_source     1.391e-03  6.853e-05  20.295  &amp;lt; 2e-16 ***&lt;br /&gt;
  neg_outdeg_source    -2.426e-04  3.250e-05  -7.463 8.48e-14 ***&lt;br /&gt;
  pos_indeg_source     -6.058e-04  1.022e-04  -5.930 3.02e-09 ***&lt;br /&gt;
  neg_indeg_source      1.028e-04  3.259e-05   3.153 0.001615 ** &lt;br /&gt;
  pos_outdeg_target     9.800e-04  7.372e-05  13.293  &amp;lt; 2e-16 ***&lt;br /&gt;
  neg_outdeg_target     2.142e-05  3.192e-05   0.671 0.502180    &lt;br /&gt;
  pos_indeg_target     -6.572e-04  9.495e-05  -6.922 4.48e-12 ***&lt;br /&gt;
  neg_indeg_target      6.988e-05  3.051e-05   2.290 0.022014 *  &lt;br /&gt;
  friend_of_friend      1.884e-03  5.349e-04   3.523 0.000427 ***&lt;br /&gt;
  friend_of_enemy      -8.913e-04  2.912e-04  -3.061 0.002205 ** &lt;br /&gt;
  enemy_of_friend      -1.308e-03  2.874e-04  -4.553 5.30e-06 ***&lt;br /&gt;
  enemy_of_enemy       -1.935e-04  1.532e-04  -1.263 0.206593    &lt;br /&gt;
  ---&lt;br /&gt;
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1&lt;br /&gt;
Among other results, this model provides evidence for some - but not all - hypotheses derived from structural balance theory: friends of friends tend to interact more cooperatively while friend of enemies as well as enemies of friends have a tendency to fight each other. On the other hand, the parameter associated with the &#039;&#039;enemy_of_enemy&#039;&#039; statistic is not significant. Note that the data set for fitting this model is different from the one taken in Brandes et al. (2009) since here we also included self-loops to compute the statistics (although events connecting an actor with itself have not been used when fitting the linear model).&lt;br /&gt;
&lt;br /&gt;
Obviously, modeling the event type or event weight as a stochastic function of the event network statistics is not restricted to linear models. Furthermore, if the model should control for actor-level or dyad-level covariates (such as the population size of a country or an indicator for whether two countries have a common border), these can be merged into the statistics table after processing of the event network.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Carter T. Butts: [http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9531.2008.00203.x/full &#039;&#039;&#039;A Relational event framework for social action&#039;&#039;&#039;]. &#039;&#039;Sociological Methodology&#039;&#039; 38(1):155-200, 2008.&lt;br /&gt;
* Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders: [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. Proc. 2009 Intl. Conf. Advances in Social Network Analysis and Mining (ASONAM 2009), pp.200-205. IEEE Computer Society, 2009.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Event_networks_(tutorial)&amp;diff=1677</id>
		<title>Event networks (tutorial)</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Event_networks_(tutorial)&amp;diff=1677"/>
		<updated>2018-06-18T11:25:02Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Event_network_gulf_example.png|300px|thumb]]&lt;br /&gt;
The links in an &#039;&#039;&#039;event network&#039;&#039;&#039; encode time stamped interaction among actors, for instance, users sending emails to other users. There is an important difference to networks of &#039;&#039;relational states&#039;&#039; - such as friendship networks. To illustrate the difference, when two actors are friends of each other at some instant in time, then - &#039;&#039;if nothing happens in between&#039;&#039; - they are still friends in the very near future. In contrast, if someone sends and email to another person at some instant in time, then he/she does not necessarily send an email to the same person in the very next instant in time. Stated otherwise, relations like &#039;&#039;friendship&#039;&#039; have inertia (something has to happen to change them), while relational events mark time points of interaction.&lt;br /&gt;
&lt;br /&gt;
This tutorial is a practically oriented, example based, &amp;quot;how-to&amp;quot; guide illustrating the import, transformation, visualization, and analysis of event networks with visone. More background on event networks can be found in &lt;br /&gt;
* Carter T. Butts: [http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9531.2008.00203.x/full &#039;&#039;&#039;A Relational event framework for social action&#039;&#039;&#039;]. &#039;&#039;Sociological Methodology&#039;&#039; 38(1):155-200, 2008.&lt;br /&gt;
* Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders: [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. Proc. 2009 Intl. Conf. Advances in Social Network Analysis and Mining (ASONAM 2009), pp.200-205. IEEE Computer Society, 2009.&lt;br /&gt;
and in other papers linked in the [[Event_networks_(tutorial)#References|references]].&lt;br /&gt;
&lt;br /&gt;
The functionality for statistical analysis of event networks has been superseded by the [http://algo.uni-konstanz.de/software/eventnet/ &#039;&#039;&#039;event network analyzer (eventnet)&#039;&#039;&#039;]. However, visone can still be used for visual analysis of event networks.&lt;br /&gt;
&lt;br /&gt;
Please address questions and comments about this tutorial to me ([[User:Lerner|J&amp;amp;uuml;rgen Lerner]]).&lt;br /&gt;
&lt;br /&gt;
== Example data: networks of political conflict and cooperation ==&lt;br /&gt;
&lt;br /&gt;
This tutorial uses for illustration networks of events among political actors that have been collected by the [http://eventdata.psu.edu/ Penn State Event Data Project] (formerly &#039;&#039;Kansas Event Data System&#039;&#039;). Specifically, we use data encoding events in or around the Persian Gulf region in the time from 1979 to 1999. This data set is described in and linked from the page on [[Penn_State_Event_Data|&#039;&#039;&#039;Penn State Event Data&#039;&#039;&#039;]]. To follow the steps outlined in this tutorial you should download the file [[Media:Gulf_events_preprocessed.zip|Gulf_events_preprocessed.zip]].&lt;br /&gt;
&lt;br /&gt;
Another specific application area for event networks - using different example data - is treated in the [[Wikipedia_edit_networks_(tutorial)|tutorial on Wikipedia edit networks]].&lt;br /&gt;
&lt;br /&gt;
== Importing event networks ==&lt;br /&gt;
&lt;br /&gt;
visone can import event lists from comma-separted-value (CSV) files. These files must contain a header in the first line (giving the column labels) followed by any number of lines each of which encodes one event. For instance, some lines in the example file look like this.&lt;br /&gt;
  &amp;quot;WEIS.code&amp;quot;;&amp;quot;Time&amp;quot;;&amp;quot;Source&amp;quot;;&amp;quot;Target&amp;quot;;&amp;quot;Description&amp;quot;;&amp;quot;Goldstein.weight&amp;quot;;&amp;quot;Type&amp;quot;&lt;br /&gt;
  ...&lt;br /&gt;
  222;980213;&amp;quot;ISR&amp;quot;;&amp;quot;WES&amp;quot;;&amp;quot;NONMIL DESTR&amp;quot;;-8.7;&amp;quot;conflict&amp;quot;&lt;br /&gt;
  223;920717;&amp;quot;SYR&amp;quot;;&amp;quot;ISR&amp;quot;;&amp;quot;MIL ENGAGEME&amp;quot;;-10;&amp;quot;conflict&amp;quot;&lt;br /&gt;
  ...&lt;br /&gt;
To open such a file, click on &#039;&#039;&#039;open&#039;&#039;&#039; in the [[File_menu|&#039;&#039;&#039;file&#039;&#039;&#039; menu]], select &#039;&#039;&#039;files of type:&#039;&#039;&#039; &#039;&#039;event list files (.csv, .txt)&#039;&#039;, navigate to the file that you want to open, and click on &#039;&#039;&#039;ok&#039;&#039;&#039;. In the import options dialog (see below) you have to specify the character that separates the different entries in each line - this is the semicolon (&#039;&#039;&#039;;&#039;&#039;&#039;) in our example file - and a character enclosing text (if any) - this is the double quotes (&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;) in our example file.&lt;br /&gt;
&lt;br /&gt;
[[File:Import_options_event_list.png]]&lt;br /&gt;
&lt;br /&gt;
To find out the right settings you can look at the file tab in the import options dialog showing you part of the input file.&lt;br /&gt;
&lt;br /&gt;
visone can now read the various entries of the input file - and you have to specify how these should be mapped to the resulting network in the dialog &#039;&#039;&#039;EventNetwork specification&#039;&#039;&#039; (shown below). Concretely you have to specify how the various components of an event are encoded in the file (&#039;&#039;Event format&#039;&#039; tab); how to iterate over the network sequence (&#039;&#039;Event iterator&#039;&#039; tab); how the events are mapped to the network&#039;s link attributes (&#039;&#039;Event network&#039;&#039; tab); and, if desired, which statistics should be computed while constructing the event network (&#039;&#039;Eventnet statistics&#039;&#039; tab). The tabs should be filled out in the order as they are numbered in the dialog since choice-possibilities for the latter tabs depend on previous settings. If you make changes in some tab you have to subsequently set (again) the values for the latter tabs.&lt;br /&gt;
&lt;br /&gt;
=== Event format ===&lt;br /&gt;
&lt;br /&gt;
In the event format tab (see the image below) you first have to specify which columns of the input file hold the information about the five components of an event (these are &#039;&#039;source&#039;&#039;, &#039;&#039;target&#039;&#039;, &#039;&#039;time&#039;&#039;, &#039;&#039;type&#039;&#039;, and &#039;&#039;weight&#039;&#039;). In our example, you can set the values as in the image below. The meaning of the five components is explained in the following.&lt;br /&gt;
*&#039;&#039;&#039;SOURCE&#039;&#039;&#039; The source actor is the one who initiates the event. &lt;br /&gt;
*&#039;&#039;&#039;TARGET&#039;&#039;&#039; The target actor is the one who receives the event.&lt;br /&gt;
*&#039;&#039;&#039;TIME&#039;&#039;&#039;  The time denotes when the event happened. visone supports a wide range of time encodings - from numeric times to strings representing calendar date and time in more common or less common formats. Furthermore, a time unit can be specified that defines the precision of the time variable.&lt;br /&gt;
*&#039;&#039;&#039;TYPE&#039;&#039;&#039; The event type is a categorical variable specifying what happened. In our example, there are different choices for event types. One possibility is the rather coarse distinction between cooperative (positive) and conflictive (negative) events. The other possibility is to distinguish between all more than 100 different WEIS event types. An intermediate possibility (and that&#039;s what we are going to do in the following) is to use just the distinction between conflict and cooperation but to distinguish quantitatively between &amp;quot;strong&amp;quot; events and &amp;quot;weak&amp;quot; events by the event weight. For instance, the use of military force is counted more seriously than a warning - even though both are conflictive events.&lt;br /&gt;
*&#039;&#039;&#039;WEIGHT&#039;&#039;&#039; The event weight is a numeric variable quantifying the &#039;&#039;intensity&#039;&#039; of the event with respect to the event type (see the example above). For instance, &#039;&#039;military engagement&#039;&#039; has a weight of -10.0 while warnings have a weight of -3.0.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_format_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
After these five components have been chosen visone needs some information about the interpretation of time. The first choice is the selection between &#039;&#039;&#039;numeric time&#039;&#039;&#039; (if the time fields correspond to integer numbers) or &#039;&#039;&#039;calendar time&#039;&#039;&#039; (if time fields can somehow, specified below, be turned into a date/time). We have calendar time in our example.&lt;br /&gt;
&lt;br /&gt;
If time is given by calendar, a &#039;&#039;&#039;time format pattern&#039;&#039;&#039; has to be specified. visone proposes some known pattern - among others the pattern &#039;&#039;&#039;yyMMdd&#039;&#039;&#039; which is appropriate for the KEDS event times. (This pattern implies that there are two digits for the year, followed by two digits for the month, followed by two digits for the day of the month; for instance, 940930 for September 30, 1994.) You can enter other than the proposed patterns in the textfield if date/time is formatted differently (see the webpage on the java class [http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html SimpleDateFormat] for guidance). visone assists you in finding the right pattern by showing some date/time strings as they appear in the file and - whenever you select a date format pattern - the dialog shows you the current time formatted by the specified pattern.&lt;br /&gt;
&lt;br /&gt;
Finally, you have to specify a &#039;&#039;&#039;time unit&#039;&#039;&#039;. If time is numeric you have to enter an integer in the textfield. If time is given by calendar you can select a &amp;quot;natural&amp;quot; time unit from &#039;&#039;Millisecond&#039;&#039; to &#039;&#039;Year&#039;&#039;. An appropriate time unit makes the iteration over the event sequence (and potentially the decay of link attributes over time) more intuitive. When computing event network statistics, events that happen within the same time unit are treated as independent of each other. The time of the KEDS events is given by the day. Thus, appropriate time units are &#039;&#039;&#039;DAY&#039;&#039;&#039; or coarser.&lt;br /&gt;
&lt;br /&gt;
Note that the only required information are the columns containing the source and target - for the other components you can take default values (by selecting &#039;&#039;&amp;lt;implied&amp;gt;&#039;&#039; instead of a column header). The default value for the event type is the string &#039;&#039;EVENT&#039;&#039; (taking this default type means that there is no variation in event types - all have the same type); the default weight is equal to 1.0; the default event time is the row number in the input file (so that only the order of events is taken into account).&lt;br /&gt;
&lt;br /&gt;
When all settings in the event format tab are done, you can create the list of events by clicking on the &#039;&#039;&#039;Apply (create events)&#039;&#039;&#039; button. A message informs about the number of events and the number of time units from the first to the last event. (The events are sorted in ascending order by time after reading them - thus, it is not necessary that the events are ordered by time in the input file.)&lt;br /&gt;
&lt;br /&gt;
=== Event iterator ===&lt;br /&gt;
&lt;br /&gt;
In the event iterator tab (see below) you have to specify the start and end time of the time interval to be processed and the delay between network snapshots.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_iterator_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
When the events have been created after filling out the event format tab (see the preceeding section) visone suggests as start time the time of the first event and as end time the time of the last event. If you don&#039;t want to process the whole event sequence you can increase the start time and/or decrease the end time. After clicking on the upper &#039;&#039;&#039;Apply / get info&#039;&#039;&#039; button, visone informs you about the number of events and time units in the specified subsequence. You might just take all events by not changing the interval borders; this includes all events from April 15, 1979 to March 31, 1999 - as can be seen in the dialog.&lt;br /&gt;
&lt;br /&gt;
Then you have to choose the time points when a network snapshot is to be created by specifying the delay between snapshots. You can see in the dialog that the event sequence spans more than 7,200 time units (i.e., days with the current settings) which is almost 20 years. The number of snapshots must be small (some 10 or 20 snapshots are ok), since they are all opened in a new tab in visone. When we want to create a snapshot once a year we specify &#039;&#039;create snapshots after every&#039;&#039; &#039;&#039;&#039;365&#039;&#039;&#039; &#039;&#039;time unit(s)&#039;&#039;. (The number of snapshots is then 20.) visone always creates one snapshot at the end of the event sequence - even if the waiting time is less than the specified number.&lt;br /&gt;
&lt;br /&gt;
=== Event network ===&lt;br /&gt;
&lt;br /&gt;
The tab to specify the event network is the most important one - here you define which &#039;&#039;&#039;link attributes&#039;&#039;&#039; of the event network summarize the past events, how events of various types add to these attributes, and how they change over time. &lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_network_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
The first thing to do is to decide on the link attributes. Here you are free to choose any attribute name (that makes it easy to remember the intuition of the attribute). Furthermore, a halftime - defining how fast attributes decay over time - has to be specified. The halftime has the following effect: when a particular link attribute on a particular dyad (pair or actors) has a value of &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; at time &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, then (if no event on the same dyad happens in between) the value is &amp;lt;math&amp;gt;x/2&amp;lt;/math&amp;gt; at time&lt;br /&gt;
&amp;lt;math&amp;gt;t+halftime&amp;lt;/math&amp;gt;. Intuitively, link attributes with a positive halftime capture &#039;&#039;recent interaction&#039;&#039;; if the halftime gets shorter then they capture even more recent interaction. A halftime equal to zero or negative indicates that the respective attribute does not decay over time; these attributes capture &#039;&#039;past interaction&#039;&#039; irrespective of the elapsed time.&lt;br /&gt;
&lt;br /&gt;
In our concrete example we choose the following link attributes that all have a halftime of (approximately) one year.&lt;br /&gt;
* An attribute &#039;&#039;&#039;cooperation&#039;&#039;&#039; sums up the weights of past cooperative events.&lt;br /&gt;
* The link attribute &#039;&#039;&#039;conflict&#039;&#039;&#039; is similar and sums up past conflictive events. This attribute will also be non-negative; that is, a higher value means more past/recent conflict. (See later how this is achieved.)&lt;br /&gt;
* &#039;&#039;&#039;Interaction&#039;&#039;&#039; sums up the strength of past events - irrespective of whether these are cooperative or conflictive.&lt;br /&gt;
* &#039;&#039;&#039;Interaction (unweighted)&#039;&#039;&#039; sums up the number of past events - irrespective of whether these are cooperative or conflictive and irrespective of their weight.&lt;br /&gt;
* Finally &#039;&#039;&#039;cooperation-conflict&#039;&#039;&#039; sums up the (positive) weights of cooperative events and the (negative) weights of conflictive events. This attribute is positive on dyads that have more cooperative events (or cooperative events with higher weights) and it is negative on dyads on which there are more conflictive events (or more serious conflictive events).&lt;br /&gt;
&lt;br /&gt;
When the link attributes are added (e.g., click on the &#039;&#039;&#039;Add / update all&#039;&#039;&#039; button) you have to specify how the events contribute to them. Clicking on &#039;&#039;&#039;Create weight-function table&#039;&#039;&#039; builds a table that has one row for each link attribute and one column for each event type. In the cell indexed by an attribute &amp;lt;math&amp;gt;attr&amp;lt;/math&amp;gt; and an event type &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; you specify the function mapping weights of events of type &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; to increments of the link attribute &amp;lt;math&amp;gt;attr&amp;lt;/math&amp;gt;. In our example, selecting the function &#039;&#039;Identity&#039;&#039; in the cell indexed by attribute &#039;&#039;cooperation&#039;&#039; and event type &#039;&#039;cooperation&#039;&#039; means that whenever an event of type &#039;&#039;cooperation&#039;&#039; and weight &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; happens then you add &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; to the current value of the &#039;&#039;cooperation&#039;&#039; attribute. If we had chosen &#039;&#039;SquareRoot&#039;&#039; as the weight function in the same cell, then we would add &amp;lt;math&amp;gt;\sqrt{w}&amp;lt;/math&amp;gt; to the &#039;&#039;cooperation&#039;&#039; attribute whenever an event of type &#039;&#039;cooperation&#039;&#039; and weight &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; happens. The weight-function identifier &#039;&#039;N/A&#039;&#039; means that events of that type do not cause any change of the respective attribute. For instance, events of type &#039;&#039;conflict&#039;&#039; do not change the attribute &#039;&#039;cooperation&#039;&#039;. Note that for the attribute &#039;&#039;conflict&#039;&#039; and the type &#039;&#039;conflict&#039;&#039; we choose the weight function &#039;&#039;MinusIdentity&#039;&#039;; thus, when a conflictive event with weight -10 happens we add the (positive) value 10 to the attribute &#039;&#039;conflict&#039;&#039; (thereby the &#039;&#039;conflict&#039;&#039; attribute is always non-negative and higher values indicate more past conflicts). The settings for all attributes and types can be seen in the above image.&lt;br /&gt;
&lt;br /&gt;
After these settings have been done you can create the snapshots by clicking on the button &#039;&#039;&#039;Process event network!&#039;&#039;&#039;. If you want to create a statistics table you first have to fill out the tab number 4. We turn to the statistics [[#Event_statistics|later]] and create the snapshots now.&lt;br /&gt;
&lt;br /&gt;
== Visualization and analysis of event networks ==&lt;br /&gt;
&lt;br /&gt;
With the above settings visone opens 20 network tabs. The nodes in the network have an attribute &#039;&#039;label&#039;&#039; that holds the names of the source or target nodes as they are given in the event list file. The links have (in our example) five numerical attributes encoding the values of the link attribute functions at the time of the snapshot. These link attributes allow to compute, for instance, the total amount of conflict or cooperation received or initialized by the actors (compute the indegree respectively outdegree with link strength set to &#039;&#039;conflict&#039;&#039; or &#039;&#039;cooperation&#039;&#039; or any other link attribute). These degrees can, for instance, be used for visual filtering by [[Visualization_tab|mapping]] the centrality values to size or color of the nodes or selecting nodes by importance. Examples for visualization of event networks can be found in the [[Wikipedia_edit_networks_(tutorial)|tutorial on Wikipedia edit networks]]. Note that all analysis and visualization tasks can be done in parallel for all open network tabs and note that visone also offers to compute a [[Visualization_tab#dynamic_layout|dynamic layout]] that can be animated; this is illustrated in the [[Collections_(tutorial)|tutorial on network collections]]. The image below is an example placing the most involved actors in the center of the drawing and coding rather cooperative ties in blue and rather conflictive ties in red.&lt;br /&gt;
&lt;br /&gt;
[[File:Event_network_gulf_example.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Statistical modeling of the conditional event type or weight ==&lt;br /&gt;
&lt;br /&gt;
While importing event networks it is possible to compute and save network statistics associated with dyadic events that can be used to build and estimate a statistical model for the &#039;&#039;&#039;conditional event type&#039;&#039;&#039;. Such models have been proposed in Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders (2009): [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. These models can be used to test whether the network of past events explains the likelihood that future events among a given pair of actors are rather cooperative or rather conflictive, for instance&lt;br /&gt;
* Do actors have a tendency to fight those that attacked them in the past? (Tendency to retalliate.)&lt;br /&gt;
* Do actors have a tendency to cooperated with the enemies of their enemies, to fight the friends of their enemies, etc?&lt;br /&gt;
&lt;br /&gt;
The event network statistics can be computed during importing the data, are saved in a file, and can then be analyzed with any statistical software, such as [http://www.r-project.org/ &#039;&#039;&#039;R&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
It is important to understand that with the statistics table computed by visone you can estimate a model for the &#039;&#039;&#039;conditional&#039;&#039;&#039; event type, given that an event happens, as this has been defined in Brandes et al.(2009). With the visone output you cannot model the likelihood that two actors interact at all. (Such models can be specified and fitted, for instance, with the R package [http://cran.r-project.org/web/packages/relevent/index.html &#039;&#039;&#039;relevent&#039;&#039;&#039;].) More on the difference between modeling the conditional event type and the marginal (unconditional) event type can be found in the slides [[Media:Lerner_Sunbelt12.pdf|&#039;&#039;&#039;Modeling Frequency and Type of Interaction in Event Networks&#039;&#039;&#039; (.pdf)]].&lt;br /&gt;
&lt;br /&gt;
To make the analysis comparable to the one presented in Brandes et al.(2009), we modify the link attributes in the event network tab slightly (see below). Specifically we set the halftime to 30 days and include only the attributes &#039;&#039;conflict&#039;&#039; and &#039;&#039;cooperation&#039;&#039;. (The settings in the event format stay the same and in the event iterator tabs you may set the delay between snapshots to 7291 to create only one snapshot.)&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_network_KEDS30.png]]&lt;br /&gt;
&lt;br /&gt;
=== Event statistics ===&lt;br /&gt;
&lt;br /&gt;
The statistics to be computed are defined in the eventnet statistics tab of the import dialog (see below). You first have to specify whether a statistic table should be created at all; if yes an output file has to be chosen and one or more statistics have to be defined.&lt;br /&gt;
&lt;br /&gt;
[[File:Eventnet_dialog_statistics_KEDS.png]]&lt;br /&gt;
&lt;br /&gt;
The statistics are used to model events in the following way: whenever an event happens that is initiated by a &#039;&#039;&#039;source&#039;&#039;&#039; node and directed to a &#039;&#039;&#039;target&#039;&#039;&#039; node, then the dyad &#039;&#039;(source, target)&#039;&#039; is embedded in the network of past events, i.e., all events that happened before the current event. The event network statistics describe relevant aspects of this network of past events with respect to the specific dyad. visone offers three different types of statistics - dyad statistics, degree statistics, and triangle statistics - that can be varied with respect to edge direction and/or link attributes. After defining the statistics they have to be added to the event network by clicking on the &#039;&#039;&#039;Add / update&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
==== Dyad statistics ====&lt;br /&gt;
&lt;br /&gt;
Dyad statistics encode aspects of the past events from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; or in the other direction. That is the dyad statistics encode how &#039;&#039;source&#039;&#039; interacted with &#039;&#039;target&#039;&#039; in the past or how &#039;&#039;target&#039;&#039; interacted with &#039;&#039;source&#039;&#039;. In our exmple we define four different dyad statistics that are obtained by switching the direction (&#039;&#039;inertia&#039;&#039; if &#039;&#039;&#039;OUT&#039;&#039;&#039;-going events - from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; - are considered and &#039;&#039;reciprocity&#039;&#039; if &#039;&#039;&#039;IN&#039;&#039;&#039;-coming events - from &#039;&#039;target&#039;&#039; to &#039;&#039;source&#039;&#039; - are considered) and the link attribute (&#039;&#039;positive&#039;&#039; for past cooperation and &#039;&#039;negative&#039;&#039; for past conflict).&lt;br /&gt;
&lt;br /&gt;
Intuitively, if actors tend to retalliate, then we expect that the &#039;&#039;negative reciprocity&#039;&#039; statistic is negatively related with the weight of the next event.&lt;br /&gt;
&lt;br /&gt;
==== Degree statistics ====&lt;br /&gt;
&lt;br /&gt;
Degree statistics summarize the past events around the dyad &#039;&#039;(source, target)&#039;&#039; by the weighted (out-/in-) degree of &#039;&#039;source&#039;&#039; or &#039;&#039;target&#039;&#039;. The links can be weighted by any attribute. For instance, the &#039;&#039;neg_outdeg_source&#039;&#039; statistic adds up the values of the &#039;&#039;conflict&#039;&#039; attribute on all links starting at the &#039;&#039;source&#039;&#039; node (not only those that are directed to &#039;&#039;target&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Intuitively, if actors that initiated a lot of conflictive events in the past tend to do so in the future, then we expect a negative relation between the &#039;&#039;neg_outdeg_source&#039;&#039; statistic and the weight of events. &lt;br /&gt;
&lt;br /&gt;
==== Triangle statistics ====&lt;br /&gt;
&lt;br /&gt;
Triangle statistics summarize the network of past events around the dyad &#039;&#039;(source, target)&#039;&#039; by typed and weighted indirect relations from &#039;&#039;source&#039;&#039; over any third node to &#039;&#039;target&#039;&#039; or the other way round. You can select the attributes for the links attached to &#039;&#039;source&#039;&#039; and to &#039;&#039;target&#039;&#039; and the direction which can be &#039;&#039;&#039;OUT&#039;&#039;&#039; (only out-going ties with respect to &#039;&#039;source&#039;&#039;/&#039;&#039;target&#039;&#039;), &#039;&#039;&#039;IN&#039;&#039;&#039; (only in-coming ties), or &#039;&#039;&#039;SYM&#039;&#039;&#039; (adding up the attributes of out-going and in-coming ties). &lt;br /&gt;
&lt;br /&gt;
For instance, the statistic &#039;&#039;enemy_of_friend&#039;&#039; iterates over all actors &#039;&#039;A&#039;&#039; in the network, multiplies the value of the &#039;&#039;cooperation&#039;&#039; attribute on links connecting &#039;&#039;source&#039;&#039; and &#039;&#039;A&#039;&#039; (in both directions) with the value of the &#039;&#039;conflict&#039;&#039; attribute on links connecting &#039;&#039;target&#039;&#039; and &#039;&#039;A&#039;&#039; (in both directions), adds up these products for all &#039;&#039;A&#039;&#039;, and returns the square root of this sum. Intuitively, the value of the &#039;&#039;enemy_of_friend&#039;&#039; statistic on the dyad &#039;&#039;(source, target)&#039;&#039; is high if there are many other actors &#039;&#039;A&#039;&#039; that cooperated with &#039;&#039;source&#039;&#039; and were in conflict with &#039;&#039;target&#039;&#039;; structural balance theory predicts that &#039;&#039;source&#039;&#039; is then more likely to fight &#039;&#039;target&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Starting the computation ====&lt;br /&gt;
&lt;br /&gt;
Once the output file and the statistics are specified, click on the &#039;&#039;&#039;Process event network!&#039;&#039;&#039; button. Snapshots are created as defined in the event iterator tab and statistics are computed as defined in the eventnet statistics tab.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that statistics associated with an event that happens at time &#039;&#039;t&#039;&#039; are only a function of events that happend earlier (strictly before &#039;&#039;t&#039;&#039;) - and do not depend on events that happen in the same time unit.&lt;br /&gt;
&lt;br /&gt;
The computed eventnet statistics file (&#039;&#039;gulf_events_stats.csv&#039;&#039; in our example) is a table in CSV format in which each row corresponds to one event of the input file. The components of the event (source, target, time, type, and weight) are first repeated - followed by the values of all statistics.&lt;br /&gt;
&lt;br /&gt;
Computing the statistics for all 300,000 events may take some five to ten minutes on a current standard laptop. Once the computation is finished you see the message &#039;&#039;processing successfull&#039;&#039; in the eventnet dialog. If you get an error message you might have a look at the visone [[Console|console]] where you can get more information.&lt;br /&gt;
&lt;br /&gt;
=== Modeling the conditional event weight ===&lt;br /&gt;
&lt;br /&gt;
The statistics file can now be analyzed with any statistical software - we describe the following for the [http://www.r-project.org R environment for statistical computing] (also see the visone tutorial on the [[R_console_(tutorial)|R console]]).&lt;br /&gt;
&lt;br /&gt;
First set the R working directory to the directory where the statistics file is located, for instance &lt;br /&gt;
  setwd(&amp;quot;c:/juergen/projects/event_data/keds/Gulf/&amp;quot;)&lt;br /&gt;
To read the file into a table and see some summary statistics type&lt;br /&gt;
  eventnet.stats &amp;lt;- read.csv(&amp;quot;gulf_events_stats.csv&amp;quot;, sep=&amp;quot;;&amp;quot;)&lt;br /&gt;
  summary(eventnet.stats)&lt;br /&gt;
We model only those events that are not self-loops (loops could have been removed already while preprocessing the input event list - these two procedures are not equivalent since in our case statistics are also functions of loops).&lt;br /&gt;
  eventnet.stats &amp;lt;- eventnet.stats[as.character(eventnet.stats$SOURCE) != as.character(eventnet.stats$TARGET),]&lt;br /&gt;
  summary(eventnet.stats)&lt;br /&gt;
A first very simple model is a linear model for the event weigth (from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039;) - explained by the past conflictive events in the other direction (that is from &#039;&#039;target&#039;&#039; directed to the &#039;&#039;source&#039;&#039; node).&lt;br /&gt;
  model.1 &amp;lt;- lm(WEIGHT ~ 1 + negative_reciprocity, data = eventnet.stats)&lt;br /&gt;
  summary(model.1)&lt;br /&gt;
A summary of the estimated model yields (among others) the following output:&lt;br /&gt;
  Coefficients:&lt;br /&gt;
                         Estimate Std. Error t value Pr(&amp;gt;|t|)    &lt;br /&gt;
  (Intercept)          -5.730e-01  8.866e-03  -64.63   &amp;lt;2e-16 ***&lt;br /&gt;
  negative_reciprocity -2.629e-03  2.829e-05  -92.92   &amp;lt;2e-16 ***&lt;br /&gt;
  ---&lt;br /&gt;
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 &lt;br /&gt;
The interpretation is that there seems to be a habit of retalliation: if &#039;&#039;target&#039;&#039; has initiated conflictive events towards &#039;&#039;source&#039;&#039; then the weight of events from &#039;&#039;source&#039;&#039; to &#039;&#039;target&#039;&#039; has a tendency to be smaller (significantly negative coefficient for the &#039;&#039;negative_reciprocity&#039;&#039; statistic) meaning that the event type is drawn towards conflict. The value of the coefficient (about -0.003) seems to be very small. However this parameter summarizes the change in the event weight when &#039;&#039;negative_reciprocity&#039;&#039; increases by one. Typing &lt;br /&gt;
  sd(eventnet.stats$negative_reciprocity)&lt;br /&gt;
we see that the standard deviation of this statistic is around 290 - meaning that the &#039;&#039;negative_reciprocity&#039;&#039; indicator typically varies in the hundreds.&lt;br /&gt;
&lt;br /&gt;
A more complex model tests for structural balance effects, controlling for variation in degrees and direct past interaction. (This is the model taken from Brandes et al.(2009).)&lt;br /&gt;
  model.2 &amp;lt;- lm(WEIGHT ~ 1 + positive_inertia + negative_inertia + &lt;br /&gt;
                         positive_reciprocity + negative_reciprocity + &lt;br /&gt;
                         pos_outdeg_source + neg_outdeg_source + &lt;br /&gt;
                         pos_indeg_source + neg_indeg_source + &lt;br /&gt;
                         pos_outdeg_target + neg_outdeg_target + &lt;br /&gt;
                         pos_indeg_target + neg_indeg_target +&lt;br /&gt;
                         friend_of_friend + friend_of_enemy + &lt;br /&gt;
                         enemy_of_friend + enemy_of_enemy, &lt;br /&gt;
                data = eventnet.stats)&lt;br /&gt;
We get the following results.&lt;br /&gt;
  Coefficients:&lt;br /&gt;
                         Estimate Std. Error t value Pr(&amp;gt;|t|)    &lt;br /&gt;
  (Intercept)          -7.707e-01  1.127e-02 -68.371  &amp;lt; 2e-16 ***&lt;br /&gt;
  positive_inertia      5.814e-03  2.723e-04  21.347  &amp;lt; 2e-16 ***&lt;br /&gt;
  negative_inertia     -2.145e-03  7.214e-05 -29.730  &amp;lt; 2e-16 ***&lt;br /&gt;
  positive_reciprocity  3.071e-03  3.125e-04   9.827  &amp;lt; 2e-16 ***&lt;br /&gt;
  negative_reciprocity -2.188e-03  8.175e-05 -26.768  &amp;lt; 2e-16 ***&lt;br /&gt;
  pos_outdeg_source     1.391e-03  6.853e-05  20.295  &amp;lt; 2e-16 ***&lt;br /&gt;
  neg_outdeg_source    -2.426e-04  3.250e-05  -7.463 8.48e-14 ***&lt;br /&gt;
  pos_indeg_source     -6.058e-04  1.022e-04  -5.930 3.02e-09 ***&lt;br /&gt;
  neg_indeg_source      1.028e-04  3.259e-05   3.153 0.001615 ** &lt;br /&gt;
  pos_outdeg_target     9.800e-04  7.372e-05  13.293  &amp;lt; 2e-16 ***&lt;br /&gt;
  neg_outdeg_target     2.142e-05  3.192e-05   0.671 0.502180    &lt;br /&gt;
  pos_indeg_target     -6.572e-04  9.495e-05  -6.922 4.48e-12 ***&lt;br /&gt;
  neg_indeg_target      6.988e-05  3.051e-05   2.290 0.022014 *  &lt;br /&gt;
  friend_of_friend      1.884e-03  5.349e-04   3.523 0.000427 ***&lt;br /&gt;
  friend_of_enemy      -8.913e-04  2.912e-04  -3.061 0.002205 ** &lt;br /&gt;
  enemy_of_friend      -1.308e-03  2.874e-04  -4.553 5.30e-06 ***&lt;br /&gt;
  enemy_of_enemy       -1.935e-04  1.532e-04  -1.263 0.206593    &lt;br /&gt;
  ---&lt;br /&gt;
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1&lt;br /&gt;
Among other results, this model provides evidence for some - but not all - hypotheses derived from structural balance theory: friends of friends tend to interact more cooperatively while friend of enemies as well as enemies of friends have a tendency to fight each other. On the other hand, the parameter associated with the &#039;&#039;enemy_of_enemy&#039;&#039; statistic is not significant. Note that the data set for fitting this model is different from the one taken in Brandes et al. (2009) since here we also included self-loops to compute the statistics (although events connecting an actor with itself have not been used when fitting the linear model).&lt;br /&gt;
&lt;br /&gt;
Obviously, modeling the event type or event weight as a stochastic function of the event network statistics is not restricted to linear models. Furthermore, if the model should control for actor-level or dyad-level covariates (such as the population size of a country or an indicator for whether two countries have a common border), these can be merged into the statistics table after processing of the event network.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Carter T. Butts: [http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9531.2008.00203.x/full &#039;&#039;&#039;A Relational event framework for social action&#039;&#039;&#039;]. &#039;&#039;Sociological Methodology&#039;&#039; 38(1):155-200, 2008.&lt;br /&gt;
* Ulrik Brandes, J&amp;amp;uuml;rgen Lerner, and Tom A. B. Snijders: [http://www.inf.uni-konstanz.de/algo/publications/bls-ness-09.pdf &#039;&#039;&#039;Networks Evolving Step by Step: Statistical Analysis of Dyadic Event Data&#039;&#039;&#039;]. Proc. 2009 Intl. Conf. Advances in Social Network Analysis and Mining (ASONAM 2009), pp.200-205. IEEE Computer Society, 2009.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=POLNET_(data)&amp;diff=1676</id>
		<title>POLNET (data)</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=POLNET_(data)&amp;diff=1676"/>
		<updated>2018-06-18T11:06:42Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following ZIP file contains exemplary data used in introductory visone workshops. &lt;br /&gt;
&lt;br /&gt;
[[Media:Visone_data.zip|&#039;&#039;&#039;Visone_data.zip&#039;&#039;&#039;]] (1.36 MB)&lt;br /&gt;
&lt;br /&gt;
Note that visone cannot directly load data from ZIP files. So you should extract (&#039;&#039;unzip&#039;&#039;) the files on your computer before opening them in visone.&lt;br /&gt;
&lt;br /&gt;
In addition, you should [http://visone.info/html/download.html &#039;&#039;&#039;download&#039;&#039;&#039;] the current version of visone and (as a test) execute it as it is described in the very first sentence of the [[Installation_(tutorial)|installation tutorial]].&lt;br /&gt;
&lt;br /&gt;
The following online tutorials repeat or extend content of the visone session at POLNET+&lt;br /&gt;
&lt;br /&gt;
* [[Visualization_and_analysis_(tutorial)|&#039;&#039;&#039;Visualization and analysis&#039;&#039;&#039;]]&lt;br /&gt;
* [[Personal_networks_(tutorial)|&#039;&#039;&#039;Personal networks&#039;&#039;&#039;]]&lt;br /&gt;
* [[Collections_(tutorial)|&#039;&#039;&#039;Collections&#039;&#039;&#039;]]&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=POLNET_(data)&amp;diff=1675</id>
		<title>POLNET (data)</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=POLNET_(data)&amp;diff=1675"/>
		<updated>2018-06-18T10:59:10Z</updated>

		<summary type="html">&lt;p&gt;Lerner: Created page with &amp;quot;The following ZIP file contains exemplary data used in introductory visone workshops. (Right-click and choose &amp;#039;&amp;#039;save link as&amp;#039;&amp;#039; to download.)  [[Media:Visone_data.zip|&amp;#039;&amp;#039;&amp;#039;Visone_da...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following ZIP file contains exemplary data used in introductory visone workshops. (Right-click and choose &#039;&#039;save link as&#039;&#039; to download.)&lt;br /&gt;
&lt;br /&gt;
[[Media:Visone_data.zip|&#039;&#039;&#039;Visone_data.zip&#039;&#039;&#039;]] (1.36 MB)&lt;br /&gt;
&lt;br /&gt;
Note that visone cannot directly load data from ZIP files. So you should extract (&#039;&#039;unzip&#039;&#039;) the files on your computer before opening them in visone.&lt;br /&gt;
&lt;br /&gt;
In addition, you should [http://visone.info/html/download.html &#039;&#039;&#039;download&#039;&#039;&#039;] the current version of visone and (as a test) execute it as it is described in the very first sentence of the [[Installation_(tutorial)|installation tutorial]].&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Visone_data.zip&amp;diff=1674</id>
		<title>File:Visone data.zip</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Visone_data.zip&amp;diff=1674"/>
		<updated>2018-06-18T10:56:34Z</updated>

		<summary type="html">&lt;p&gt;Lerner: uploaded a new version of &amp;amp;quot;File:Visone data.zip&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Applications&amp;diff=1673</id>
		<title>Applications</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Applications&amp;diff=1673"/>
		<updated>2018-06-18T10:54:04Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Workshop data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we list datasets on which the usage of visone can be illustrated.&lt;br /&gt;
&lt;br /&gt;
== Empirical datasets ==&lt;br /&gt;
&lt;br /&gt;
* [[Egoredes_(data)|&#039;&#039;&#039;Egoredes&#039;&#039;&#039; acculturation networks]]: personal networks of immigrants&lt;br /&gt;
* [[Signos_(data)|&#039;&#039;&#039;Signos&#039;&#039;&#039;]] newer and more comprehensive data about personal networks of immigrants than the Egoredes data above&lt;br /&gt;
* [[Newcomb_Fraternity_(data)|&#039;&#039;&#039;Newcomb Fraternity Data&#039;&#039;&#039;]]&lt;br /&gt;
* [[Knecht_Classroom_(data)|&#039;&#039;&#039;Knecht Classroom Data&#039;&#039;&#039;]]: four observations of a classroom friendship network&lt;br /&gt;
* [[Penn State Event Data|&#039;&#039;&#039;Penn State Event Data&#039;&#039;&#039;]]: event data about political conflict and cooperation (formerly &#039;&#039;Kansas Event Data System (KEDS)&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== Workshop data ==&lt;br /&gt;
&lt;br /&gt;
* [[POLNET_(data)|&#039;&#039;&#039;Data for POLNET+ visone session&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
* [[Sunbelt_workshop_(data)|&#039;&#039;&#039;Data for Sunbelt XXXIII (2013) visone workshop&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
* [[Introductory_workshop_(data)|&#039;&#039;&#039;Data for ASNA 2011 workshop&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
== Synthetic datasets ==&lt;br /&gt;
&lt;br /&gt;
* [[Hairball_Graphs_(data)| &#039;&#039;&#039;Hairball Graphs&#039;&#039;&#039;]]: 50 synthetic hairball graphs with a hidden group structure&lt;br /&gt;
&lt;br /&gt;
== Auxiliary software ==&lt;br /&gt;
&lt;br /&gt;
* [[EgoNet2GraphML_(software)|EgoNet2GraphML]] can (1) convert EgoNet interviews into GraphML files (that can be opened with visone) and (2) cluster, aggregate, and visualize collections of personal networks using the methodology proposed in: Ulrik Brandes, Juergen Lerner, Miranda J. Lubbers, Chris McCarty, and Jose Luis Molina &#039;&#039;&#039;&amp;quot;Visual Statistics for Collections of Clustered Graphs&amp;quot;&#039;&#039;&#039;. &#039;&#039;Proc. IEEE Pacific Visualization Symp. (PacificVis&#039;08)&#039;&#039;, 2008 ([http://www.inf.uni-konstanz.de/algo/publications/bllmm-vsccg-08.pdf &#039;&#039;link to pdf&#039;&#039;]).&lt;br /&gt;
* [[WikiEvent_(software)|&#039;&#039;&#039;WikiEvent&#039;&#039;&#039;]] is a small graphical java software with which the &#039;&#039;&#039;&#039;&#039;edit network&#039;&#039;&#039;&#039;&#039; associated with the history of [http://www.wikipedia.org Wikipedia] pages can be computed. See the [[Wikipedia_edit_networks_(tutorial)| tutorial on Wikipedia edit networks]].&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=User:Lerner&amp;diff=1672</id>
		<title>User:Lerner</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=User:Lerner&amp;diff=1672"/>
		<updated>2018-04-30T07:49:20Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;J&amp;amp;uuml;rgen Lerner&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can reach me at [mailto:juergen.lerner@gmail.com juergen.lerner@gmail.com].&lt;br /&gt;
&lt;br /&gt;
My homepage [http://algo.uni-konstanz.de/members/lerner/ http://algo.uni-konstanz.de/members/lerner/].&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_import.png&amp;diff=1520</id>
		<title>File:Attribute manager import.png</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_import.png&amp;diff=1520"/>
		<updated>2015-03-30T06:23:29Z</updated>

		<summary type="html">&lt;p&gt;Lerner: uploaded a new version of &amp;amp;quot;File:Attribute manager import.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=NLP_Tab&amp;diff=1454</id>
		<title>NLP Tab</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=NLP_Tab&amp;diff=1454"/>
		<updated>2014-05-21T08:59:47Z</updated>

		<summary type="html">&lt;p&gt;Lerner: Redirected page to NLP tab&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[NLP tab]]&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Links_menu&amp;diff=1453</id>
		<title>Links menu</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Links_menu&amp;diff=1453"/>
		<updated>2014-03-19T15:17:03Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* selection... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== deletion ==&lt;br /&gt;
&lt;br /&gt;
=== delete links ===&lt;br /&gt;
&lt;br /&gt;
deletes all selected links&lt;br /&gt;
&lt;br /&gt;
=== delete loops ===&lt;br /&gt;
&lt;br /&gt;
deletes all links from nodes to themselves within existing current selection or globally otherwise&lt;br /&gt;
&lt;br /&gt;
=== delete bends ===&lt;br /&gt;
&lt;br /&gt;
deletes all link bends within existing current selection or globally otherwise&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== selection ==&lt;br /&gt;
&lt;br /&gt;
=== select all ===&lt;br /&gt;
&lt;br /&gt;
adds all links to selection&lt;br /&gt;
&lt;br /&gt;
=== deselect all ===&lt;br /&gt;
&lt;br /&gt;
removes all links from selection&lt;br /&gt;
&lt;br /&gt;
=== invert selection ===&lt;br /&gt;
&lt;br /&gt;
removes all links from selection and adds those that had not been selected before &lt;br /&gt;
&lt;br /&gt;
== appearance ==&lt;br /&gt;
&lt;br /&gt;
=== templates... ===&lt;br /&gt;
&lt;br /&gt;
opens the [[link templates dialog]]&lt;br /&gt;
&lt;br /&gt;
=== properties... ===&lt;br /&gt;
&lt;br /&gt;
opens the [[link properties dialog]]&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Nodes_menu&amp;diff=1452</id>
		<title>Nodes menu</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Nodes_menu&amp;diff=1452"/>
		<updated>2014-03-19T15:16:11Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* selection... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== deletion ==&lt;br /&gt;
&lt;br /&gt;
=== delete nodes ===&lt;br /&gt;
&lt;br /&gt;
deletes all selected nodes&lt;br /&gt;
&lt;br /&gt;
=== delete isolates ===&lt;br /&gt;
&lt;br /&gt;
deletes all nodes without incident links within existing current selection or globally otherwise&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== selection ==&lt;br /&gt;
&lt;br /&gt;
=== select all ===&lt;br /&gt;
&lt;br /&gt;
adds all nodes to selection&lt;br /&gt;
&lt;br /&gt;
=== deselect all ===&lt;br /&gt;
&lt;br /&gt;
removes all nodes from selection&lt;br /&gt;
&lt;br /&gt;
=== invert selection ===&lt;br /&gt;
&lt;br /&gt;
removes all nodes from selection and adds those that had not been selected before &lt;br /&gt;
&lt;br /&gt;
=== select groups ===&lt;br /&gt;
&lt;br /&gt;
adds all [[groups]] to selection&lt;br /&gt;
&lt;br /&gt;
== appearance ==&lt;br /&gt;
&lt;br /&gt;
=== templates... ===&lt;br /&gt;
&lt;br /&gt;
opens the [[node templates dialog]]&lt;br /&gt;
&lt;br /&gt;
=== properties... ===&lt;br /&gt;
&lt;br /&gt;
opens the [[node properties dialog]]&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1451</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1451"/>
		<updated>2014-03-19T15:14:09Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Import &amp;amp; export */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. Attributes also encode the results of a [[Analysis_tab|network analysis algorithm]] such as node centrality of cluster membership. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Show &amp;amp; edit ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Show &amp;amp; edit&#039;&#039;&#039; category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attributes. &lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_show_n_edit.png]]&lt;br /&gt;
&lt;br /&gt;
You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box is checked and you can specify whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#Import_&amp;amp;_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]].&lt;br /&gt;
&lt;br /&gt;
== Select ==&lt;br /&gt;
&lt;br /&gt;
The category &#039;&#039;&#039;select&#039;&#039;&#039; allows you to select all elements that have a specified value in a given attribute.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_select.png]]&lt;br /&gt;
&lt;br /&gt;
The drop-down menu right of &#039;&#039;attribute&#039;&#039; is used to choose the attribute that should define the selection. The table below then shows all different values of that attribute and the number of elements that have these values. Clicking on one or several (keep the Control key pressed) rows in this table selects all these elements.&lt;br /&gt;
&lt;br /&gt;
Note that the category [[#Filter|filter]] offers much more powerful ways to select elements dependent on attributes.&lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;configure&#039;&#039;&#039; category allows you to create or delete attribute functions or to change meta information such as name, type (range of values), default value, and description.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_configure.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new attribute click on the &#039;&#039;&#039;create attribute&#039;&#039;&#039; button (which adds a new row to the table above) and specify the attributes meta information:&lt;br /&gt;
* check mark &#039;&#039;&#039;label&#039;&#039;&#039;: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039;: enables the (re-)definition of attribute names; choose a short but intuitive name here that indicates the semantics of the attribute&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039;: defines the type that is the range of values of the attribute; this can be (text, binary, integer, decimal, text list, integer list, decimal list)&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039;: can be used to define a default value for those elements that have no value assigned&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039;: a human-readable and potentially long description of what is encoded by the attribute&lt;br /&gt;
When all this information is specified, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to actually create the attribute.&lt;br /&gt;
&lt;br /&gt;
You can also change the meta information for attributes that are already defined for the network. Attributes can be deleted by checking the box &#039;&#039;&#039;delete&#039;&#039;&#039; in the rightmost column.&lt;br /&gt;
&lt;br /&gt;
All these changes can be done only for the current network (choose &#039;&#039;&#039;this network&#039;&#039;&#039; in the drop-down menu) or for all &#039;&#039;&#039;open networks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that whenever some attribute is scheduled for creation or deletion or some of its meta information has been changed, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button at the bottom of the attribute manager to execute these changes.&lt;br /&gt;
&lt;br /&gt;
== Manipulate ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;manipulate&#039;&#039;&#039; category provides powerful means to apply automatic transformations to one or several attributes. One example is provided in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_manipulate.png]]&lt;br /&gt;
&lt;br /&gt;
In the first drop-down menu you specify the type of manipulation&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;copy&#039;&#039;&#039; an existing attribute and all its values to an already existing attribute (if you want to overwrite this) or provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you just want to create a copy that you might modify later without loosing the original information).&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;rank&#039;&#039;&#039; the elements with respect to any numerical attribute that is already in the network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to concatenate the values of two or more existing attriubtes (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) into a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
Conversely, there are a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating their &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039;, count the number of elements, number of distinct elements, or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them.&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to apply certain functions to the values of one or several existing attributes, among others&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;add attributes&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;multiply attributes&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* apply square (roots) or logarithms, etc.&lt;br /&gt;
While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
== Filter ==&lt;br /&gt;
&lt;br /&gt;
Category &#039;&#039;&#039;filter&#039;&#039;&#039; can be used to select elements dependent on attribute values, graphical values, incidence to selected links, adjacency to selected nodes, or combinations thereof. It is much more powerful than attribute management category &#039;&#039;&#039;select&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_filter.png]]&lt;br /&gt;
&lt;br /&gt;
Each row in the central area defines one condition for the filter; an element gets only selected if it satisfies all conditions. The radio buttons at the bottom specify how the selection defined by the filter is combined with the current selection (if any):&lt;br /&gt;
*&#039;&#039;&#039;replace&#039;&#039;&#039; turns the selection defined by the filter into the current one (irrespective the previous selection)&lt;br /&gt;
*&#039;&#039;&#039;add&#039;&#039;&#039; builds the union of the filter&#039;s selection with the current one&lt;br /&gt;
*&#039;&#039;&#039;remove&#039;&#039;&#039; deselects those elements that match the filter from the current selection &lt;br /&gt;
*&#039;&#039;&#039;intersect&#039;&#039;&#039; selects only those elements that are in both the current selection and in the filter&#039;s selection&lt;br /&gt;
&lt;br /&gt;
There are several possibilities to specify a condition (one row of the filter):&lt;br /&gt;
*&#039;&#039;&#039;attribute&#039;&#039;&#039; allows to select all elements that assume values in specified ranges (the choices are different for numerical attributes than for text attributes)&lt;br /&gt;
*&#039;&#039;&#039;position&#039;&#039;&#039; constraints the x-/y-positions of selected nodes&lt;br /&gt;
*&#039;&#039;&#039;color&#039;&#039;&#039;, &#039;&#039;&#039;size&#039;&#039;&#039;, and &#039;&#039;&#039;shape&#039;&#039;&#039; can further specify the graphics of nodes or links&lt;br /&gt;
*&#039;&#039;&#039;incidence&#039;&#039;&#039; allows to select the nodes that have incident links that are already selected &lt;br /&gt;
*&#039;&#039;&#039;adjacency&#039;&#039;&#039; requires that neighbors of the nodes have to be currently selected&lt;br /&gt;
&lt;br /&gt;
== Import &amp;amp; export == &lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Data_input_(tutorial)|data input tutorial]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_import.png]]&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1450</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1450"/>
		<updated>2014-03-19T15:08:28Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Filter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. Attributes also encode the results of a [[Analysis_tab|network analysis algorithm]] such as node centrality of cluster membership. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Show &amp;amp; edit ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Show &amp;amp; edit&#039;&#039;&#039; category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attributes. &lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_show_n_edit.png]]&lt;br /&gt;
&lt;br /&gt;
You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box is checked and you can specify whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#Import_&amp;amp;_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]].&lt;br /&gt;
&lt;br /&gt;
== Select ==&lt;br /&gt;
&lt;br /&gt;
The category &#039;&#039;&#039;select&#039;&#039;&#039; allows you to select all elements that have a specified value in a given attribute.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_select.png]]&lt;br /&gt;
&lt;br /&gt;
The drop-down menu right of &#039;&#039;attribute&#039;&#039; is used to choose the attribute that should define the selection. The table below then shows all different values of that attribute and the number of elements that have these values. Clicking on one or several (keep the Control key pressed) rows in this table selects all these elements.&lt;br /&gt;
&lt;br /&gt;
Note that the category [[#Filter|filter]] offers much more powerful ways to select elements dependent on attributes.&lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;configure&#039;&#039;&#039; category allows you to create or delete attribute functions or to change meta information such as name, type (range of values), default value, and description.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_configure.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new attribute click on the &#039;&#039;&#039;create attribute&#039;&#039;&#039; button (which adds a new row to the table above) and specify the attributes meta information:&lt;br /&gt;
* check mark &#039;&#039;&#039;label&#039;&#039;&#039;: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039;: enables the (re-)definition of attribute names; choose a short but intuitive name here that indicates the semantics of the attribute&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039;: defines the type that is the range of values of the attribute; this can be (text, binary, integer, decimal, text list, integer list, decimal list)&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039;: can be used to define a default value for those elements that have no value assigned&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039;: a human-readable and potentially long description of what is encoded by the attribute&lt;br /&gt;
When all this information is specified, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to actually create the attribute.&lt;br /&gt;
&lt;br /&gt;
You can also change the meta information for attributes that are already defined for the network. Attributes can be deleted by checking the box &#039;&#039;&#039;delete&#039;&#039;&#039; in the rightmost column.&lt;br /&gt;
&lt;br /&gt;
All these changes can be done only for the current network (choose &#039;&#039;&#039;this network&#039;&#039;&#039; in the drop-down menu) or for all &#039;&#039;&#039;open networks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that whenever some attribute is scheduled for creation or deletion or some of its meta information has been changed, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button at the bottom of the attribute manager to execute these changes.&lt;br /&gt;
&lt;br /&gt;
== Manipulate ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;manipulate&#039;&#039;&#039; category provides powerful means to apply automatic transformations to one or several attributes. One example is provided in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_manipulate.png]]&lt;br /&gt;
&lt;br /&gt;
In the first drop-down menu you specify the type of manipulation&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;copy&#039;&#039;&#039; an existing attribute and all its values to an already existing attribute (if you want to overwrite this) or provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you just want to create a copy that you might modify later without loosing the original information).&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;rank&#039;&#039;&#039; the elements with respect to any numerical attribute that is already in the network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to concatenate the values of two or more existing attriubtes (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) into a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
Conversely, there are a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating their &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039;, count the number of elements, number of distinct elements, or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them.&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to apply certain functions to the values of one or several existing attributes, among others&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;add attributes&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;multiply attributes&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* apply square (roots) or logarithms, etc.&lt;br /&gt;
While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
== Filter ==&lt;br /&gt;
&lt;br /&gt;
Category &#039;&#039;&#039;filter&#039;&#039;&#039; can be used to select elements dependent on attribute values, graphical values, incidence to selected links, adjacency to selected nodes, or combinations thereof. It is much more powerful than attribute management category &#039;&#039;&#039;select&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_filter.png]]&lt;br /&gt;
&lt;br /&gt;
Each row in the central area defines one condition for the filter; an element gets only selected if it satisfies all conditions. The radio buttons at the bottom specify how the selection defined by the filter is combined with the current selection (if any):&lt;br /&gt;
*&#039;&#039;&#039;replace&#039;&#039;&#039; turns the selection defined by the filter into the current one (irrespective the previous selection)&lt;br /&gt;
*&#039;&#039;&#039;add&#039;&#039;&#039; builds the union of the filter&#039;s selection with the current one&lt;br /&gt;
*&#039;&#039;&#039;remove&#039;&#039;&#039; deselects those elements that match the filter from the current selection &lt;br /&gt;
*&#039;&#039;&#039;intersect&#039;&#039;&#039; selects only those elements that are in both the current selection and in the filter&#039;s selection&lt;br /&gt;
&lt;br /&gt;
There are several possibilities to specify a condition (one row of the filter):&lt;br /&gt;
*&#039;&#039;&#039;attribute&#039;&#039;&#039; allows to select all elements that assume values in specified ranges (the choices are different for numerical attributes than for text attributes)&lt;br /&gt;
*&#039;&#039;&#039;position&#039;&#039;&#039; constraints the x-/y-positions of selected nodes&lt;br /&gt;
*&#039;&#039;&#039;color&#039;&#039;&#039;, &#039;&#039;&#039;size&#039;&#039;&#039;, and &#039;&#039;&#039;shape&#039;&#039;&#039; can further specify the graphics of nodes or links&lt;br /&gt;
*&#039;&#039;&#039;incidence&#039;&#039;&#039; allows to select the nodes that have incident links that are already selected &lt;br /&gt;
*&#039;&#039;&#039;adjacency&#039;&#039;&#039; requires that neighbors of the nodes have to be currently selected&lt;br /&gt;
&lt;br /&gt;
== Import &amp;amp; export == &lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1449</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1449"/>
		<updated>2014-03-19T15:07:42Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Filter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. Attributes also encode the results of a [[Analysis_tab|network analysis algorithm]] such as node centrality of cluster membership. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Show &amp;amp; edit ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Show &amp;amp; edit&#039;&#039;&#039; category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attributes. &lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_show_n_edit.png]]&lt;br /&gt;
&lt;br /&gt;
You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box is checked and you can specify whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#Import_&amp;amp;_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]].&lt;br /&gt;
&lt;br /&gt;
== Select ==&lt;br /&gt;
&lt;br /&gt;
The category &#039;&#039;&#039;select&#039;&#039;&#039; allows you to select all elements that have a specified value in a given attribute.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_select.png]]&lt;br /&gt;
&lt;br /&gt;
The drop-down menu right of &#039;&#039;attribute&#039;&#039; is used to choose the attribute that should define the selection. The table below then shows all different values of that attribute and the number of elements that have these values. Clicking on one or several (keep the Control key pressed) rows in this table selects all these elements.&lt;br /&gt;
&lt;br /&gt;
Note that the category [[#Filter|filter]] offers much more powerful ways to select elements dependent on attributes.&lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;configure&#039;&#039;&#039; category allows you to create or delete attribute functions or to change meta information such as name, type (range of values), default value, and description.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_configure.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new attribute click on the &#039;&#039;&#039;create attribute&#039;&#039;&#039; button (which adds a new row to the table above) and specify the attributes meta information:&lt;br /&gt;
* check mark &#039;&#039;&#039;label&#039;&#039;&#039;: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039;: enables the (re-)definition of attribute names; choose a short but intuitive name here that indicates the semantics of the attribute&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039;: defines the type that is the range of values of the attribute; this can be (text, binary, integer, decimal, text list, integer list, decimal list)&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039;: can be used to define a default value for those elements that have no value assigned&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039;: a human-readable and potentially long description of what is encoded by the attribute&lt;br /&gt;
When all this information is specified, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to actually create the attribute.&lt;br /&gt;
&lt;br /&gt;
You can also change the meta information for attributes that are already defined for the network. Attributes can be deleted by checking the box &#039;&#039;&#039;delete&#039;&#039;&#039; in the rightmost column.&lt;br /&gt;
&lt;br /&gt;
All these changes can be done only for the current network (choose &#039;&#039;&#039;this network&#039;&#039;&#039; in the drop-down menu) or for all &#039;&#039;&#039;open networks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that whenever some attribute is scheduled for creation or deletion or some of its meta information has been changed, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button at the bottom of the attribute manager to execute these changes.&lt;br /&gt;
&lt;br /&gt;
== Manipulate ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;manipulate&#039;&#039;&#039; category provides powerful means to apply automatic transformations to one or several attributes. One example is provided in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_manipulate.png]]&lt;br /&gt;
&lt;br /&gt;
In the first drop-down menu you specify the type of manipulation&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;copy&#039;&#039;&#039; an existing attribute and all its values to an already existing attribute (if you want to overwrite this) or provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you just want to create a copy that you might modify later without loosing the original information).&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;rank&#039;&#039;&#039; the elements with respect to any numerical attribute that is already in the network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to concatenate the values of two or more existing attriubtes (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) into a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
Conversely, there are a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating their &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039;, count the number of elements, number of distinct elements, or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them.&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to apply certain functions to the values of one or several existing attributes, among others&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;add attributes&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;multiply attributes&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* apply square (roots) or logarithms, etc.&lt;br /&gt;
While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
== Filter ==&lt;br /&gt;
&lt;br /&gt;
Category &#039;&#039;&#039;filter&#039;&#039;&#039; can be used to select elements dependent on attribute values, graphical values, incidence to selected links, adjacency to selected nodes, or combinations thereof. It is much more powerful than attribute management category &#039;&#039;&#039;select&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_filter.png]]&lt;br /&gt;
&lt;br /&gt;
Each row in the central area defines one condition for the filter; an element gets only selected if it satisfies all conditions. The checkmarks at the bottom specify how the selection defined by the filter is combined with the current selection (if any):&lt;br /&gt;
*&#039;&#039;&#039;replace&#039;&#039;&#039; turns the selection defined by the filter into the current one (irrespective the previous selection)&lt;br /&gt;
*&#039;&#039;&#039;add&#039;&#039;&#039; builds the union of the filter&#039;s selection with the current one&lt;br /&gt;
*&#039;&#039;&#039;remove&#039;&#039;&#039; deselects those elements that match the filter from the current selection &lt;br /&gt;
*&#039;&#039;&#039;intersect&#039;&#039;&#039; selects only those elements that are in both the current selection and in the filter&#039;s selection&lt;br /&gt;
&lt;br /&gt;
There are several possibilities to specify a condition (one row of the filter):&lt;br /&gt;
*&#039;&#039;&#039;attribute&#039;&#039;&#039; allows to select all elements that assume values in specified ranges (the choices are different for numerical attributes than for text attributes)&lt;br /&gt;
*&#039;&#039;&#039;position&#039;&#039;&#039; constraints the x-/y-positions of selected nodes&lt;br /&gt;
*&#039;&#039;&#039;color&#039;&#039;&#039;, &#039;&#039;&#039;size&#039;&#039;&#039;, and &#039;&#039;&#039;shape&#039;&#039;&#039; can further specify the graphics of nodes or links&lt;br /&gt;
*&#039;&#039;&#039;incidence&#039;&#039;&#039; allows to select the nodes that have incident links that are already selected &lt;br /&gt;
*&#039;&#039;&#039;adjacency&#039;&#039;&#039; requires that neighbors of the nodes have to be currently selected&lt;br /&gt;
&lt;br /&gt;
== Import &amp;amp; export == &lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1448</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1448"/>
		<updated>2014-03-19T14:23:58Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Filter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. Attributes also encode the results of a [[Analysis_tab|network analysis algorithm]] such as node centrality of cluster membership. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Show &amp;amp; edit ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Show &amp;amp; edit&#039;&#039;&#039; category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attributes. &lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_show_n_edit.png]]&lt;br /&gt;
&lt;br /&gt;
You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box is checked and you can specify whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#Import_&amp;amp;_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]].&lt;br /&gt;
&lt;br /&gt;
== Select ==&lt;br /&gt;
&lt;br /&gt;
The category &#039;&#039;&#039;select&#039;&#039;&#039; allows you to select all elements that have a specified value in a given attribute.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_select.png]]&lt;br /&gt;
&lt;br /&gt;
The drop-down menu right of &#039;&#039;attribute&#039;&#039; is used to choose the attribute that should define the selection. The table below then shows all different values of that attribute and the number of elements that have these values. Clicking on one or several (keep the Control key pressed) rows in this table selects all these elements.&lt;br /&gt;
&lt;br /&gt;
Note that the category [[#Filter|filter]] offers much more powerful ways to select elements dependent on attributes.&lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;configure&#039;&#039;&#039; category allows you to create or delete attribute functions or to change meta information such as name, type (range of values), default value, and description.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_configure.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new attribute click on the &#039;&#039;&#039;create attribute&#039;&#039;&#039; button (which adds a new row to the table above) and specify the attributes meta information:&lt;br /&gt;
* check mark &#039;&#039;&#039;label&#039;&#039;&#039;: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039;: enables the (re-)definition of attribute names; choose a short but intuitive name here that indicates the semantics of the attribute&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039;: defines the type that is the range of values of the attribute; this can be (text, binary, integer, decimal, text list, integer list, decimal list)&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039;: can be used to define a default value for those elements that have no value assigned&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039;: a human-readable and potentially long description of what is encoded by the attribute&lt;br /&gt;
When all this information is specified, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to actually create the attribute.&lt;br /&gt;
&lt;br /&gt;
You can also change the meta information for attributes that are already defined for the network. Attributes can be deleted by checking the box &#039;&#039;&#039;delete&#039;&#039;&#039; in the rightmost column.&lt;br /&gt;
&lt;br /&gt;
All these changes can be done only for the current network (choose &#039;&#039;&#039;this network&#039;&#039;&#039; in the drop-down menu) or for all &#039;&#039;&#039;open networks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that whenever some attribute is scheduled for creation or deletion or some of its meta information has been changed, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button at the bottom of the attribute manager to execute these changes.&lt;br /&gt;
&lt;br /&gt;
== Manipulate ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;manipulate&#039;&#039;&#039; category provides powerful means to apply automatic transformations to one or several attributes. One example is provided in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_manipulate.png]]&lt;br /&gt;
&lt;br /&gt;
In the first drop-down menu you specify the type of manipulation&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;copy&#039;&#039;&#039; an existing attribute and all its values to an already existing attribute (if you want to overwrite this) or provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you just want to create a copy that you might modify later without loosing the original information).&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;rank&#039;&#039;&#039; the elements with respect to any numerical attribute that is already in the network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to concatenate the values of two or more existing attriubtes (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) into a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
Conversely, there are a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating their &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039;, count the number of elements, number of distinct elements, or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them.&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to apply certain functions to the values of one or several existing attributes, among others&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;add attributes&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;multiply attributes&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* apply square (roots) or logarithms, etc.&lt;br /&gt;
While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
== Filter ==&lt;br /&gt;
&lt;br /&gt;
Category &#039;&#039;&#039;filter&#039;&#039;&#039; can be used to select elements dependent on attribute values, graphical values, incidence to selected links, adjacency to selected nodes, or combinations thereof. It is much more powerful than attribute management category &#039;&#039;&#039;select&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_filter.png]]&lt;br /&gt;
&lt;br /&gt;
== Import &amp;amp; export == &lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1447</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1447"/>
		<updated>2014-03-19T14:21:26Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Filter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. Attributes also encode the results of a [[Analysis_tab|network analysis algorithm]] such as node centrality of cluster membership. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Show &amp;amp; edit ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Show &amp;amp; edit&#039;&#039;&#039; category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attributes. &lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_show_n_edit.png]]&lt;br /&gt;
&lt;br /&gt;
You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box is checked and you can specify whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#Import_&amp;amp;_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]].&lt;br /&gt;
&lt;br /&gt;
== Select ==&lt;br /&gt;
&lt;br /&gt;
The category &#039;&#039;&#039;select&#039;&#039;&#039; allows you to select all elements that have a specified value in a given attribute.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_select.png]]&lt;br /&gt;
&lt;br /&gt;
The drop-down menu right of &#039;&#039;attribute&#039;&#039; is used to choose the attribute that should define the selection. The table below then shows all different values of that attribute and the number of elements that have these values. Clicking on one or several (keep the Control key pressed) rows in this table selects all these elements.&lt;br /&gt;
&lt;br /&gt;
Note that the category [[#Filter|filter]] offers much more powerful ways to select elements dependent on attributes.&lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;configure&#039;&#039;&#039; category allows you to create or delete attribute functions or to change meta information such as name, type (range of values), default value, and description.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_configure.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new attribute click on the &#039;&#039;&#039;create attribute&#039;&#039;&#039; button (which adds a new row to the table above) and specify the attributes meta information:&lt;br /&gt;
* check mark &#039;&#039;&#039;label&#039;&#039;&#039;: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039;: enables the (re-)definition of attribute names; choose a short but intuitive name here that indicates the semantics of the attribute&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039;: defines the type that is the range of values of the attribute; this can be (text, binary, integer, decimal, text list, integer list, decimal list)&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039;: can be used to define a default value for those elements that have no value assigned&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039;: a human-readable and potentially long description of what is encoded by the attribute&lt;br /&gt;
When all this information is specified, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to actually create the attribute.&lt;br /&gt;
&lt;br /&gt;
You can also change the meta information for attributes that are already defined for the network. Attributes can be deleted by checking the box &#039;&#039;&#039;delete&#039;&#039;&#039; in the rightmost column.&lt;br /&gt;
&lt;br /&gt;
All these changes can be done only for the current network (choose &#039;&#039;&#039;this network&#039;&#039;&#039; in the drop-down menu) or for all &#039;&#039;&#039;open networks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that whenever some attribute is scheduled for creation or deletion or some of its meta information has been changed, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button at the bottom of the attribute manager to execute these changes.&lt;br /&gt;
&lt;br /&gt;
== Manipulate ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;manipulate&#039;&#039;&#039; category provides powerful means to apply automatic transformations to one or several attributes. One example is provided in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_manipulate.png]]&lt;br /&gt;
&lt;br /&gt;
In the first drop-down menu you specify the type of manipulation&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;copy&#039;&#039;&#039; an existing attribute and all its values to an already existing attribute (if you want to overwrite this) or provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you just want to create a copy that you might modify later without loosing the original information).&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;rank&#039;&#039;&#039; the elements with respect to any numerical attribute that is already in the network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to concatenate the values of two or more existing attriubtes (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) into a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
Conversely, there are a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating their &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039;, count the number of elements, number of distinct elements, or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them.&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to apply certain functions to the values of one or several existing attributes, among others&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;add attributes&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;multiply attributes&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* apply square (roots) or logarithms, etc.&lt;br /&gt;
While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
== Filter ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_filter.png]]&lt;br /&gt;
&lt;br /&gt;
== Import &amp;amp; export == &lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_filter.png&amp;diff=1446</id>
		<title>File:Attribute manager filter.png</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_filter.png&amp;diff=1446"/>
		<updated>2014-03-19T14:20:55Z</updated>

		<summary type="html">&lt;p&gt;Lerner: uploaded &amp;amp;quot;File:Attribute manager filter.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_filter.png&amp;diff=1445</id>
		<title>File:Attribute manager filter.png</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_filter.png&amp;diff=1445"/>
		<updated>2014-03-19T14:20:20Z</updated>

		<summary type="html">&lt;p&gt;Lerner: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Managing_attributes_(tutorial)&amp;diff=1444</id>
		<title>Managing attributes (tutorial)</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Managing_attributes_(tutorial)&amp;diff=1444"/>
		<updated>2014-03-19T14:20:01Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Selecting and deleting links below a threshold */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This [[Tutorials|tutorial]] introduces you to the full power of visone&#039;s [[attribute manager]] and shows you how to select elements dependent on attribute values. The attribute manager allows you, for instance, to convert tie strength to distance or rankings and vice versa, dichotomize networks, rescale tie weights and much more. &lt;br /&gt;
&lt;br /&gt;
This tutorial assumes that you have a basic understanding of how to analyze and visualize networks in visone - as it is illustrated, for instance, in the [[Visualization_and_analysis_(tutorial)|previous tutorial]].&lt;br /&gt;
&lt;br /&gt;
== An exemplary dataset: Newcomb Fraternity Data ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Newcomb Fraternity Data&#039;&#039;&#039; (see &#039;&#039;Newcomb T. (1961). The acquaintance process. New York: Holt, Reinhard &amp;amp; Winston.&#039;&#039;) consits of 15 matrices recording weekly sociometric preference rankings from 17 men attending the University of Michigan in the fall of 1956. Each participant ranks all 16 others from best friend down to least friend. This data set is explained in more detail on the page [[Newcomb Fraternity (data)]]. &lt;br /&gt;
&lt;br /&gt;
To follow the steps illustrated in this tutorial, you should download the file [[Media:Newfrat.zip|Newfrat.zip]] (ZIP file containing the 15 matrices &#039;&#039;newfrat01.csv&#039;&#039; to &#039;&#039;newfrat15.csv&#039;&#039;), save it to your computer and decompress (&#039;&#039;unzip&#039;&#039;) it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import the CSV files ==&lt;br /&gt;
&lt;br /&gt;
We start by importing one of the adjacency matrices (e.g., &#039;&#039;newfrat01.csv&#039;&#039;) into visone. Therefore use the menu &#039;&#039;&#039;file, open&#039;&#039;&#039; and select &#039;&#039;&#039;files of type&#039;&#039;&#039; &#039;&#039;adjacency matrix files (.txt, .csv)&#039;&#039;. Before importing the file it is important to set the correct options; the images below show the [[import options dialog]]. &lt;br /&gt;
&lt;br /&gt;
[[File:Import_options_newfrat.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Newfrat01.png|100px|thumb|right]] Setting the options as shown above and clicking on &#039;&#039;&#039;ok&#039;&#039;&#039; opens the network which looks like the one shown on the right.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the network is complete (i.e., each pair of actors is connected by a bidirectional tie. All links have an attribute called &#039;&#039;&#039;csv value&#039;&#039;&#039; whose value corresponds to the respective entry in the adjacency matrix and, thus, is equal to the &#039;&#039;&#039;rank&#039;&#039;&#039; of the target node in the ordered list of friends of the source node.&lt;br /&gt;
&lt;br /&gt;
A more exhaustive treatment of how to import data into visone is given in the [[Data_input_(tutorial)|data input tutorial]].&lt;br /&gt;
&lt;br /&gt;
== Who is the most popular? ==&lt;br /&gt;
&lt;br /&gt;
For illustration, we want to explore the popularity of actors with respect to the aggregated nominations of all others. Clearly, the number of incomming ties would not be a good measure for this, since each node receives exactly 16 links. The information about how popular actors are lies in the ranking of the ties. In the extremal case it would be possible that one actor (the most popular one) receives 16 links having rank equal to 1 and another actor receives 16 links labeled 16 (i.e., this actor would be the least friend for all others).&lt;br /&gt;
&lt;br /&gt;
There are several possibilities to turn the weighted nominations into a one-dimensional measure for popularity: dichotomizing the network by defining a threshold that separates between the &amp;quot;friends&amp;quot; and the &amp;quot;non-friends&amp;quot;; computing a weighted indegree that takes into account the link weights; or combinations of the two. Some of these possibilities are illustrated below.&lt;br /&gt;
&lt;br /&gt;
== Selecting and deleting links below a threshold ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_rename.png|200px|thumb|right]] It is convenient to rename the attribute encoding the ranks, since &#039;&#039;&#039;csv value&#039;&#039;&#039; is not a very intuitive name. To do this open the [[attribute manager]], click the button &#039;&#039;&#039;link&#039;&#039;&#039; in the top row, and &#039;&#039;&#039;configure&#039;&#039;&#039; on the left. Click in the text field where it currently says &#039;&#039;&#039;csv value&#039;&#039;&#039; and write, for instance, &#039;&#039;&#039;rank&#039;&#039;&#039; into it; click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
Exemplarily, we want to keep only links that go to the &#039;&#039;&#039;top-3 friends&#039;&#039;&#039;. To select all links with a rank higher than 3 (i.e., all links that we want to delete) click on the button &#039;&#039;&#039;filter&#039;&#039;&#039; on the left-hand side (still having selected &#039;&#039;&#039;link&#039;&#039;&#039; in the top row). In the row where you can define the filter, select &#039;&#039;&#039;attribute&#039;&#039;&#039;, then &#039;&#039;&#039;rank&#039;&#039;&#039;, check (&#039;&#039;only&#039;&#039;) the box before the greater than-sign (&#039;&#039;&#039;&amp;gt;&#039;&#039;&#039;), type &#039;&#039;&#039;3&#039;&#039;&#039; in the textfield. Select the radio button &#039;&#039;&#039;replace&#039;&#039;&#039; at the bottom and click on &#039;&#039;&#039;select&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_filter_rank.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Newfrat01_top3.png|100px|thumb|right]] This should select 221 out of 272 links (this information can be found in the lower left corner of the visone window) that can now be deleted by clicking on the menu &#039;&#039;&#039;links, delete links&#039;&#039;&#039;, or from the [[link context menu]]. Clicking on the [[Quick_layout|quick layout button]] should show a network like the one on the right. It can be seen from this image that nodes 16 and 10 seem to be quite popular.&lt;br /&gt;
&lt;br /&gt;
== Status layouts ==&lt;br /&gt;
&lt;br /&gt;
To state this more quantitiatively, we compute the nodes&#039; &#039;&#039;&#039;indegree&#039;&#039;&#039; via the [[analysis tab]] (ignoring the tie weights by selecting &#039;&#039;&#039;link strength&#039;&#039;&#039;=&#039;&#039;uniform&#039;&#039;) and save it in an attribute &#039;&#039;indegree (unweighted)&#039;&#039;. This node attribute encodes, thus, the number of times that the node has been nominated as best friend, 2nd best friend, or 3rd best friend. &lt;br /&gt;
&lt;br /&gt;
[[File:Analysis_tab_indegree.png|330px]] [[File:Visualization_tab_status.png|500px]]&lt;br /&gt;
&lt;br /&gt;
To visualize the relative values we use a [[status layout]] that can be computed via the [[visualization tab]] (set &#039;&#039;&#039;node value&#039;&#039;&#039; to the newly computed node attribute &#039;&#039;indegree (unweighted)&#039;&#039; as shown in the screen shot above).&lt;br /&gt;
&lt;br /&gt;
== Transforming attributes ==&lt;br /&gt;
&lt;br /&gt;
The unweighted indegree as computed above counts the number of times that the node has been nominated as 1st, 2nd, or 3rd best friend. To count nominations as best friend more than nominations as 2nd best friend, we can map these rankings to values and then compute the &#039;&#039;weighted&#039;&#039; indegrees. The rank values can not directly be taken as measures of tie strength since a higher rank (e.g., 3) indicates a lower friendship intensity than a lower rank (e.g., 1). Thus we have to apply an order-reversing mapping on the rank attribute. This can be done via the [[attribute manager]]. Note that the particular choice for the transformation below has been done arbitrarily and merely serves for illustrating how attributes can be transformed; when a particular research questions has to be answered one should be able to justify such a choice, or show that the particular choice of transformation does not influence the findings significantly.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_reverse.png]]&lt;br /&gt;
&lt;br /&gt;
In the [[attribute manager]] select the &#039;&#039;&#039;link&#039;&#039;&#039; button on the top and &#039;&#039;&#039;manipulate&#039;&#039;&#039; on the left. Selecting, from top to bottom, &#039;&#039;&#039;manipulate values&#039;&#039;&#039;, &#039;&#039;&#039;reverse&#039;&#039;&#039;, and &#039;&#039;&#039;rank&#039;&#039;&#039;, giving a new name to the transformed attribute (such as &#039;&#039;&#039;rank reversed&#039;&#039;&#039;), and clicking the &#039;&#039;apply&#039;&#039; button adds the new attribute to all nodes. &#039;&#039;&#039;Reverse&#039;&#039;&#039; means that the interval of values gets reverted as specified by the formula &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;reversedValue=maxValue+minValue-value&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In our example, 1 is mapped to 3, 2 to 2, and 3 to 1. You might inspect the other possibilities for transforming attribute values; note that transformations that are not directly implemented in the attribute manager can be done via visone&#039;s [[R console tab|R console]] (see the [[R_console_(tutorial)#Loading_networks_from_R_into_visone|R console tutorial]] for illustration).&lt;br /&gt;
&lt;br /&gt;
== Centrality and status on weighted networks ==&lt;br /&gt;
&lt;br /&gt;
A weighted indegree, dependent on the newly computed attribute, can be computed via the [[analysis tab]] (similar to the unweighted indegree, but setting &#039;&#039;&#039;link strength&#039;&#039;&#039; to &#039;&#039;rank reversed&#039;&#039;). Mapping this weighted indegree in a [[status layout]] reveals that actor 16 is more popular than 10 with respect to the weighted measure, but equally popular with respect to the unweighted indegree.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_filter.png&amp;diff=1443</id>
		<title>File:Attribute manager filter.png</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_filter.png&amp;diff=1443"/>
		<updated>2014-03-19T14:19:07Z</updated>

		<summary type="html">&lt;p&gt;Lerner: moved File:Attribute manager filter.png to File:Attribute manager filter rank.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[File:Attribute manager filter rank.png]]&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_filter_rank.png&amp;diff=1442</id>
		<title>File:Attribute manager filter rank.png</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_filter_rank.png&amp;diff=1442"/>
		<updated>2014-03-19T14:19:06Z</updated>

		<summary type="html">&lt;p&gt;Lerner: moved File:Attribute manager filter.png to File:Attribute manager filter rank.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1441</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1441"/>
		<updated>2014-03-19T14:09:17Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* grouped modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. Attributes also encode the results of a [[Analysis_tab|network analysis algorithm]] such as node centrality of cluster membership. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Show &amp;amp; edit ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Show &amp;amp; edit&#039;&#039;&#039; category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attributes. &lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_show_n_edit.png]]&lt;br /&gt;
&lt;br /&gt;
You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box is checked and you can specify whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#Import_&amp;amp;_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]].&lt;br /&gt;
&lt;br /&gt;
== Select ==&lt;br /&gt;
&lt;br /&gt;
The category &#039;&#039;&#039;select&#039;&#039;&#039; allows you to select all elements that have a specified value in a given attribute.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_select.png]]&lt;br /&gt;
&lt;br /&gt;
The drop-down menu right of &#039;&#039;attribute&#039;&#039; is used to choose the attribute that should define the selection. The table below then shows all different values of that attribute and the number of elements that have these values. Clicking on one or several (keep the Control key pressed) rows in this table selects all these elements.&lt;br /&gt;
&lt;br /&gt;
Note that the category [[#Filter|filter]] offers much more powerful ways to select elements dependent on attributes.&lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;configure&#039;&#039;&#039; category allows you to create or delete attribute functions or to change meta information such as name, type (range of values), default value, and description.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_configure.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new attribute click on the &#039;&#039;&#039;create attribute&#039;&#039;&#039; button (which adds a new row to the table above) and specify the attributes meta information:&lt;br /&gt;
* check mark &#039;&#039;&#039;label&#039;&#039;&#039;: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039;: enables the (re-)definition of attribute names; choose a short but intuitive name here that indicates the semantics of the attribute&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039;: defines the type that is the range of values of the attribute; this can be (text, binary, integer, decimal, text list, integer list, decimal list)&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039;: can be used to define a default value for those elements that have no value assigned&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039;: a human-readable and potentially long description of what is encoded by the attribute&lt;br /&gt;
When all this information is specified, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to actually create the attribute.&lt;br /&gt;
&lt;br /&gt;
You can also change the meta information for attributes that are already defined for the network. Attributes can be deleted by checking the box &#039;&#039;&#039;delete&#039;&#039;&#039; in the rightmost column.&lt;br /&gt;
&lt;br /&gt;
All these changes can be done only for the current network (choose &#039;&#039;&#039;this network&#039;&#039;&#039; in the drop-down menu) or for all &#039;&#039;&#039;open networks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that whenever some attribute is scheduled for creation or deletion or some of its meta information has been changed, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button at the bottom of the attribute manager to execute these changes.&lt;br /&gt;
&lt;br /&gt;
== Manipulate ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;manipulate&#039;&#039;&#039; category provides powerful means to apply automatic transformations to one or several attributes. One example is provided in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_manipulate.png]]&lt;br /&gt;
&lt;br /&gt;
In the first drop-down menu you specify the type of manipulation&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;copy&#039;&#039;&#039; an existing attribute and all its values to an already existing attribute (if you want to overwrite this) or provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you just want to create a copy that you might modify later without loosing the original information).&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;rank&#039;&#039;&#039; the elements with respect to any numerical attribute that is already in the network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to concatenate the values of two or more existing attriubtes (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) into a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
Conversely, there are a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating their &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039;, count the number of elements, number of distinct elements, or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them.&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to apply certain functions to the values of one or several existing attributes, among others&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;add attributes&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;multiply attributes&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* apply square (roots) or logarithms, etc.&lt;br /&gt;
While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
== Filter ==&lt;br /&gt;
&lt;br /&gt;
== Import &amp;amp; export == &lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1440</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1440"/>
		<updated>2014-03-19T13:45:24Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Manipulate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. Attributes also encode the results of a [[Analysis_tab|network analysis algorithm]] such as node centrality of cluster membership. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Show &amp;amp; edit ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Show &amp;amp; edit&#039;&#039;&#039; category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attributes. &lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_show_n_edit.png]]&lt;br /&gt;
&lt;br /&gt;
You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box is checked and you can specify whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#Import_&amp;amp;_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]].&lt;br /&gt;
&lt;br /&gt;
== Select ==&lt;br /&gt;
&lt;br /&gt;
The category &#039;&#039;&#039;select&#039;&#039;&#039; allows you to select all elements that have a specified value in a given attribute.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_select.png]]&lt;br /&gt;
&lt;br /&gt;
The drop-down menu right of &#039;&#039;attribute&#039;&#039; is used to choose the attribute that should define the selection. The table below then shows all different values of that attribute and the number of elements that have these values. Clicking on one or several (keep the Control key pressed) rows in this table selects all these elements.&lt;br /&gt;
&lt;br /&gt;
Note that the category [[#Filter|filter]] offers much more powerful ways to select elements dependent on attributes.&lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;configure&#039;&#039;&#039; category allows you to create or delete attribute functions or to change meta information such as name, type (range of values), default value, and description.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_configure.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new attribute click on the &#039;&#039;&#039;create attribute&#039;&#039;&#039; button (which adds a new row to the table above) and specify the attributes meta information:&lt;br /&gt;
* check mark &#039;&#039;&#039;label&#039;&#039;&#039;: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039;: enables the (re-)definition of attribute names; choose a short but intuitive name here that indicates the semantics of the attribute&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039;: defines the type that is the range of values of the attribute; this can be (text, binary, integer, decimal, text list, integer list, decimal list)&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039;: can be used to define a default value for those elements that have no value assigned&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039;: a human-readable and potentially long description of what is encoded by the attribute&lt;br /&gt;
When all this information is specified, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to actually create the attribute.&lt;br /&gt;
&lt;br /&gt;
You can also change the meta information for attributes that are already defined for the network. Attributes can be deleted by checking the box &#039;&#039;&#039;delete&#039;&#039;&#039; in the rightmost column.&lt;br /&gt;
&lt;br /&gt;
All these changes can be done only for the current network (choose &#039;&#039;&#039;this network&#039;&#039;&#039; in the drop-down menu) or for all &#039;&#039;&#039;open networks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that whenever some attribute is scheduled for creation or deletion or some of its meta information has been changed, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button at the bottom of the attribute manager to execute these changes.&lt;br /&gt;
&lt;br /&gt;
== Manipulate ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;manipulate&#039;&#039;&#039; category provides powerful means to apply automatic transformations to one or several attributes. One example is provided in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_manipulate.png]]&lt;br /&gt;
&lt;br /&gt;
In the first drop-down menu you specify the type of manipulation&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;copy&#039;&#039;&#039; an existing attribute and all its values to an already existing attribute (if you want to overwrite this) or provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you just want to create a copy that you might modify later without loosing the original information).&lt;br /&gt;
&lt;br /&gt;
You can &#039;&#039;&#039;rank&#039;&#039;&#039; the elements with respect to any numerical attribute that is already in the network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to concatenate the values of two or more existing attriubtes (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) into a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
Conversely, there are a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating their &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039;, count the number of elements, number of distinct elements, or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them.&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to apply certain functions to the values of one or several existing attributes, among others&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;add attributes&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;multiply attributes&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* apply square (roots) or logarithms, etc.&lt;br /&gt;
While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
== Filter ==&lt;br /&gt;
&lt;br /&gt;
== Import &amp;amp; export == &lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;br /&gt;
&lt;br /&gt;
== grouped modifications ==&lt;br /&gt;
&lt;br /&gt;
=== operations ===&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== import and export ===&lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_manipulate.png&amp;diff=1439</id>
		<title>File:Attribute manager manipulate.png</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_manipulate.png&amp;diff=1439"/>
		<updated>2014-03-19T13:21:37Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1438</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1438"/>
		<updated>2014-03-19T13:08:42Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. Attributes also encode the results of a [[Analysis_tab|network analysis algorithm]] such as node centrality of cluster membership. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Show &amp;amp; edit ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Show &amp;amp; edit&#039;&#039;&#039; category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attributes. &lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_show_n_edit.png]]&lt;br /&gt;
&lt;br /&gt;
You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box is checked and you can specify whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#Import_&amp;amp;_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]].&lt;br /&gt;
&lt;br /&gt;
== Select ==&lt;br /&gt;
&lt;br /&gt;
The category &#039;&#039;&#039;select&#039;&#039;&#039; allows you to select all elements that have a specified value in a given attribute.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_select.png]]&lt;br /&gt;
&lt;br /&gt;
The drop-down menu right of &#039;&#039;attribute&#039;&#039; is used to choose the attribute that should define the selection. The table below then shows all different values of that attribute and the number of elements that have these values. Clicking on one or several (keep the Control key pressed) rows in this table selects all these elements.&lt;br /&gt;
&lt;br /&gt;
Note that the category [[#Filter|filter]] offers much more powerful ways to select elements dependent on attributes.&lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;configure&#039;&#039;&#039; category allows you to create or delete attribute functions or to change meta information such as name, type (range of values), default value, and description.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_configure.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new attribute click on the &#039;&#039;&#039;create attribute&#039;&#039;&#039; button (which adds a new row to the table above) and specify the attributes meta information:&lt;br /&gt;
* check mark &#039;&#039;&#039;label&#039;&#039;&#039;: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039;: enables the (re-)definition of attribute names; choose a short but intuitive name here that indicates the semantics of the attribute&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039;: defines the type that is the range of values of the attribute; this can be (text, binary, integer, decimal, text list, integer list, decimal list)&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039;: can be used to define a default value for those elements that have no value assigned&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039;: a human-readable and potentially long description of what is encoded by the attribute&lt;br /&gt;
When all this information is specified, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to actually create the attribute.&lt;br /&gt;
&lt;br /&gt;
You can also change the meta information for attributes that are already defined for the network. Attributes can be deleted by checking the box &#039;&#039;&#039;delete&#039;&#039;&#039; in the rightmost column.&lt;br /&gt;
&lt;br /&gt;
All these changes can be done only for the current network (choose &#039;&#039;&#039;this network&#039;&#039;&#039; in the drop-down menu) or for all &#039;&#039;&#039;open networks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that whenever some attribute is scheduled for creation or deletion or some of its meta information has been changed, you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button at the bottom of the attribute manager to execute these changes.&lt;br /&gt;
&lt;br /&gt;
== Manipulate ==&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
== Filter ==&lt;br /&gt;
&lt;br /&gt;
== Import &amp;amp; export == &lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;br /&gt;
&lt;br /&gt;
== grouped modifications ==&lt;br /&gt;
&lt;br /&gt;
=== operations ===&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== import and export ===&lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_configure.png&amp;diff=1437</id>
		<title>File:Attribute manager configure.png</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_configure.png&amp;diff=1437"/>
		<updated>2014-03-19T12:51:08Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1436</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1436"/>
		<updated>2014-03-19T12:46:51Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Select */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. Attributes also encode the results of a [[Analysis_tab|network analysis algorithm]] such as node centrality of cluster membership. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Show &amp;amp; edit ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Show &amp;amp; edit&#039;&#039;&#039; category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attributes. &lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_show_n_edit.png]]&lt;br /&gt;
&lt;br /&gt;
You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box is checked and you can specify whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#Import_&amp;amp;_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]].&lt;br /&gt;
&lt;br /&gt;
== Select ==&lt;br /&gt;
&lt;br /&gt;
The category &#039;&#039;&#039;select&#039;&#039;&#039; allows you to select all elements that have a specified value in a given attribute.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_select.png]]&lt;br /&gt;
&lt;br /&gt;
The drop-down menu right of &#039;&#039;attribute&#039;&#039; is used to choose the attribute that should define the selection. The table below then shows all different values of that attribute and the number of elements that have these values. Clicking on one or several (keep the Control key pressed) rows in this table selects all these elements.&lt;br /&gt;
&lt;br /&gt;
Note that the category [[#Filter|filter]] offers much more powerful ways to select elements dependent on attributes.&lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
* check mark: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* name field: enables the (re-)definition of attribute names; to create a new attribute you have to use this field to define a name first&lt;br /&gt;
* type selection: defines the type (text, binary, integer, decimal, text list, integer list, decimal list) of the attribute&lt;br /&gt;
* default: can be used to define a default value for this attribute that is assigned to all nodes automatically (since only declaring the name and type of an attribute function does not define its values)&lt;br /&gt;
* description&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to press the apply button at the bottom of the attribute manager.&lt;br /&gt;
&lt;br /&gt;
== Manipulate ==&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
== Filter ==&lt;br /&gt;
&lt;br /&gt;
== Import &amp;amp; export == &lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;br /&gt;
&lt;br /&gt;
== grouped modifications ==&lt;br /&gt;
&lt;br /&gt;
=== operations ===&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== import and export ===&lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1435</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1435"/>
		<updated>2014-03-19T12:35:34Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. Attributes also encode the results of a [[Analysis_tab|network analysis algorithm]] such as node centrality of cluster membership. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Show &amp;amp; edit ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Show &amp;amp; edit&#039;&#039;&#039; category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attributes. &lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_show_n_edit.png]]&lt;br /&gt;
&lt;br /&gt;
You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box is checked and you can specify whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#Import_&amp;amp;_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]].&lt;br /&gt;
&lt;br /&gt;
== Select == &lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
* check mark: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* name field: enables the (re-)definition of attribute names; to create a new attribute you have to use this field to define a name first&lt;br /&gt;
* type selection: defines the type (text, binary, integer, decimal, text list, integer list, decimal list) of the attribute&lt;br /&gt;
* default: can be used to define a default value for this attribute that is assigned to all nodes automatically (since only declaring the name and type of an attribute function does not define its values)&lt;br /&gt;
* description&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to press the apply button at the bottom of the attribute manager.&lt;br /&gt;
&lt;br /&gt;
== Manipulate ==&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
== Filter ==&lt;br /&gt;
&lt;br /&gt;
== Import &amp;amp; export == &lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;br /&gt;
&lt;br /&gt;
== grouped modifications ==&lt;br /&gt;
&lt;br /&gt;
=== operations ===&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== import and export ===&lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_select.png&amp;diff=1434</id>
		<title>File:Attribute manager select.png</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_select.png&amp;diff=1434"/>
		<updated>2014-03-19T12:34:05Z</updated>

		<summary type="html">&lt;p&gt;Lerner: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Visualization_and_analysis_(tutorial)&amp;diff=1433</id>
		<title>Visualization and analysis (tutorial)</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Visualization_and_analysis_(tutorial)&amp;diff=1433"/>
		<updated>2014-03-19T12:33:39Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Selecting elements dependent on attribute values */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This [[Tutorials|tutorial]] shows you how analysis and visualization goes hand in hand in visone. It introduces you to the most common usage scenario: importing data from one or several files, analyzing the network, visualizing the network together with the computed indicators, exporting data and images for further processing or publication.&lt;br /&gt;
&lt;br /&gt;
This tutorial assumes that you have basic knowledge about how to operate the visone [[GUI]] - as explained in the [[Introducing the visual network editor (tutorial)|previous tutorial]].&lt;br /&gt;
&lt;br /&gt;
== Introducing an exemplary dataset ==&lt;br /&gt;
&lt;br /&gt;
The data that we use in this tutorial has been collected in a long-term reseach project about &#039;&#039;acculturation networks&#039;&#039;. More information about the project can be found at [http://www.egoredes.net]. Among others, the personal networks of now more than 1,000 immigrants have been collected within this project. Each of the respondents (called &#039;&#039;&#039;ego&#039;&#039;&#039;) provided answers to four types of questions:&lt;br /&gt;
# &#039;&#039;&#039;questions about ego&#039;&#039;&#039;, including country of origin, years of residence, age, gender, skin color, reasons for migrating, health, language skills...&lt;br /&gt;
# &#039;&#039;&#039;alters&#039;&#039;&#039; a list of persons known to ego (for most networks the number has been fixed to 45)&lt;br /&gt;
# &#039;&#039;&#039;questions about alters&#039;&#039;&#039; including country of origin, country of residence, age, skin color, type of relation to ego, ...&lt;br /&gt;
# &#039;&#039;&#039;alter-alter ties&#039;&#039;&#039; (undirected) pairs of alters that &#039;&#039;know each other&#039;&#039; (according to the respondent)&lt;br /&gt;
&lt;br /&gt;
A more detailed description is provided on the page [[Egoredes (data)]].&lt;br /&gt;
&lt;br /&gt;
In this tutorial we exemplarily analyze one of these personal networks obtained from interviewing a migrant from the Dominican Republic to the USA. The dataset here contains none of the variables characterizing ego but only the alter characteristics and the alter-alter ties.&lt;br /&gt;
&lt;br /&gt;
More specifically the ties are encoded in an adjacency matrix file &#039;&#039;Egonet_ties.csv&#039;&#039;, the alter characteristics in a file &#039;&#039;Egonet_attributes.csv&#039;&#039;. The [[GraphML]] file &#039;&#039;Egonet.graphml&#039;&#039; contains ties and attributes in a more comfortable and reliable way; the &#039;&#039;CSV&#039;&#039; files are provided for the sole purpose of demonstrating how data can be imported from comma-separated value tables.&lt;br /&gt;
&lt;br /&gt;
* [[Media:Egonet_ties.csv|&#039;&#039;&#039;alter-alter ties&#039;&#039;&#039; (&#039;&#039;Egonet_ties.csv&#039;&#039;)]]&lt;br /&gt;
* [[Media:Egonet_attributes.csv|&#039;&#039;&#039;alter characteristics&#039;&#039;&#039; (&#039;&#039;Egonet_attributes.csv&#039;&#039;)]]&lt;br /&gt;
* [[Media:Egonet.graphml|GraphML file (&#039;&#039;Egonet.graphml&#039;&#039;)]]&lt;br /&gt;
&lt;br /&gt;
To follow the steps explained in this tutorial, you should download these three files and save them on your hard disk (right-click and select &#039;&#039;save link as&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;Note:&#039;&#039;&#039; we also provide more recent and more comprehensive data about personal networks of immigrants linked from the page [[Signos_(data)]]; visual analysis of that data is illustrated in the [[Personal_networks_(tutorial)|tutorial on personal networks]].)&lt;br /&gt;
&lt;br /&gt;
== Importing networks from adjacency matrix files ==&lt;br /&gt;
&lt;br /&gt;
The usual way to get a network into visone is to read it from a local file via the menu &#039;&#039;&#039;file, open&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Menu_file_open.png]]&lt;br /&gt;
&lt;br /&gt;
The usual file type to be read by visone is [[GraphML]]; GraphML files contain information about nodes and links, about attributes of nodes and links, and about graphical information such as layout, color, or shape. To read GraphML files you select &#039;&#039;.graphml&#039;&#039;&lt;br /&gt;
in the [[file open dialog]] (shown below) and click on &#039;&#039;ok&#039;&#039;; this is simple, fast, and reliable.&lt;br /&gt;
&lt;br /&gt;
Here, for illustration, we go the hard way and assume that the data are not stored in a GraphML file but in &#039;&#039;comma-separated-value tables&#039;&#039;. This very primitive file type can be output from many programs, including statistical software, spread-sheet editors, or other network analysis software. Sometimes you have to deal with this file type.&lt;br /&gt;
&lt;br /&gt;
To open a network from an adjacency matrix file you select &#039;&#039;files of type&#039;&#039; &#039;&#039;&#039;CSV files (.txt, .csv)&#039;&#039;&#039; in the file open dialog, select the appropriate file in the file browser, and click on &#039;&#039;&#039;ok&#039;&#039;&#039;. To follow the steps outlined in this tutorial, select the file &#039;&#039;&#039;Egonet_ties.csv&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:File_open_dialog.png]]&lt;br /&gt;
&lt;br /&gt;
Clicking on &#039;&#039;ok&#039;&#039; does not immediatelly open the file. Indeed, in contrast to GraphML, CSV files don&#039;t have a self-explaining interpretation; rather the program that has to handle them needs some guidance. Therefore visone opens an [[import options dialog]] (see below).&lt;br /&gt;
&lt;br /&gt;
[[File:Import_options_dialog_adjacency_matrix.png]]&lt;br /&gt;
&lt;br /&gt;
For an exhaustive explanation of all options and their meaning see the page on the [[import options dialog]]. To continue with this tutorial, set all options as shown in the image above and click on &#039;&#039;&#039;ok&#039;&#039;&#039;.&lt;br /&gt;
This opens a network looking like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Egonet_ties.png]]&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;.csv&#039;&#039; does not contain layout information. The position of the nodes has been determined by the layout algorithm that can be initiated with the [[quick layout button]].&lt;br /&gt;
&lt;br /&gt;
Apart from GraphML and CSV format, visone can also open files in UCINET&#039;s &#039;&#039;.dl&#039;&#039; format, in Pajek&#039;s &#039;&#039;.net&#039;&#039; format, and some more.&lt;br /&gt;
&lt;br /&gt;
A more exhaustive treatment about the various possibilities to import data into visone is given in the [[Data_input_(tutorial)|data input tutorial]].&lt;br /&gt;
&lt;br /&gt;
== Importing attributes from CSV tables ==&lt;br /&gt;
&lt;br /&gt;
Currently, the nodes have only one attribute called &#039;&#039;id&#039;&#039;. The values of other attributes are provided in the file &#039;&#039;Egonet_attributes.csv&#039;&#039;. This file can be merged into our current network via the [[attribute manager]] which can be started by clicking on the icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar.&lt;br /&gt;
&lt;br /&gt;
In the attribute manager, choose the &#039;&#039;&#039;nodes&#039;&#039;&#039; button in the top row, &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; on the left, and select the file [[Media:Egonet_attributes.csv|&#039;&#039;Egonet_attributes.csv&#039;&#039;]] that you have previously downloaded to your computer. &lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_import.png]] [[File:Attribute_manager_import_options.png]] &lt;br /&gt;
&lt;br /&gt;
Before clicking on &#039;&#039;&#039;apply&#039;&#039;&#039; it is very important to correctly set the value in the &#039;&#039;join by&#039;&#039; drop-down menu. This should point to the name of the attribute that identifies the nodes and tells visone which column in the imported CSV file holds these identifiers. Currently you can only select &#039;&#039;&#039;id&#039;&#039;&#039; but in general there might be several node attributes and the nodes could as well be identified by attributes having a different name than &#039;&#039;&#039;id&#039;&#039;&#039;. Clicking on &#039;&#039;&#039;apply&#039;&#039;&#039; opens an import options dialog; setting the options as shown above - in particular, setting the cell delimiter to semicolon (&#039;&#039;&#039;;&#039;&#039;&#039;) - and clicking on &#039;&#039;&#039;ok&#039;&#039;&#039; imports the attributes. You can see the result by clicking the &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; button on the left hand side of the attribute manager. Then, you should see something similar to the following image.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_import_result.png]]&lt;br /&gt;
&lt;br /&gt;
== Mapping attributes to graphics: categorical attributes ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mapping_categorical.png|300px|thumb|right]] For many networks it is extremly insightful to show the attribute values in the network image. In visone, attributes can be mapped to graphical variables via the [[visualization tab]].&lt;br /&gt;
&lt;br /&gt;
In the [[visualization tab]] you can choose between plenty of options; these have to be set from top to bottom. For the &#039;&#039;&#039;category&#039;&#039;&#039; chose &#039;&#039;mapping&#039;&#039; since we want to map existing attributes to graphical variables. (The other two options are &#039;&#039;layout&#039;&#039; for applying a visualization algorithm and &#039;&#039;geometry&#039;&#039; for doing affine transformations, such as rotating or scaling.)&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;type&#039;&#039;&#039; of the mapping refers to the type of the graphical variable that is used for encoding attribute values. This choice is restricted by the type of the attribute that is to be mapped. Numerical attributes can be mapped to graphical variables that allow the user to recognize that one actor has a larger value than another one; examples of such variables are size or position whose usage is demonstrated further down in this tutorial. In this section, however, we want to encode a categorical variable - more specifically, the country of origin of the actor. A good choice for a graphical variable to encode this information is &#039;&#039;color&#039;&#039; which we select in the drop-down menu right of &#039;&#039;&#039;type&#039;&#039;&#039;. For &#039;&#039;&#039;property&#039;&#039;&#039; chose &#039;&#039;node color&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The drop-down menu right of &#039;&#039;&#039;node value&#039;&#039;&#039; should be set to the name of the attribute that is to be encoded; we chose &#039;&#039;Afrm&#039;&#039; (meaning &#039;&#039;country of origin of the actor&#039;&#039;). Finally, selecting &#039;&#039;color table&#039;&#039; for the &#039;&#039;&#039;method&#039;&#039;&#039; option presents you a table with the different values of the &#039;&#039;Afrm&#039;&#039; attribute together with a predefined choice of colors that you can change as you wish. Clicking on the &#039;&#039;&#039;visualize!&#039;&#039;&#039; button at the bottom of the visualization tab applies the mapping whose result is shown in the network area of the visone window.&lt;br /&gt;
&lt;br /&gt;
== Computing network analytic indicators: centrality ==&lt;br /&gt;
&lt;br /&gt;
[[File:Analysis_example.png|200px|thumb|right]] visone offers you a rich choice of methods that compute analytic measures on a given network. In this section, we exemplarily compute a centrality indicator on the set of actors. (Node centralities specify which actors are the &#039;&#039;important&#039;&#039; ones with respect to a certain criterion.)&lt;br /&gt;
&lt;br /&gt;
Computing such indicators is done via the [[analysis tab]]. To compute the degree of the actors (i.e., the number of ties attached to each actor) set &#039;&#039;&#039;task&#039;&#039;&#039; to &#039;&#039;indexing&#039;&#039;. &#039;&#039;Indexing&#039;&#039; means that we are assigning values to individual elements (i.e., to nodes or edges) of the network. Set &#039;&#039;&#039;class&#039;&#039;&#039; to &#039;&#039;node centrality&#039;&#039; and &#039;&#039;&#039;index&#039;&#039;&#039; to &#039;&#039;degree&#039;&#039;. The values specified for &#039;&#039;&#039;link length&#039;&#039;&#039; and &#039;&#039;&#039;link strength&#039;&#039;&#039; can currently only be &#039;&#039;uniform&#039;&#039; since we don&#039;t have any tie weights. Unchecking the &#039;&#039;&#039;percentage&#039;&#039;&#039; and &#039;&#039;&#039;standardize&#039;&#039;&#039; boxes ensures that the actual degrees are computed. The text field right of &#039;&#039;&#039;result attribute&#039;&#039;&#039; specifies the name of the attribute in which the computed values are to be stored. (visone makes suggestions for this name; at the moment it should say &#039;&#039;degree&#039;&#039; but you can change this if you want.)&lt;br /&gt;
&lt;br /&gt;
Having set all these options click on the &#039;&#039;&#039;analyze!&#039;&#039;&#039; button at the bottom of the analysis tab. (You won&#039;t see any change in the image of the network; however, at the bottom line of the main window visone tells you what has been computed and in which attribute it has been stored.)&lt;br /&gt;
[[File:Node_properties_dialog_degree.png|100px|thumb|left]]&lt;br /&gt;
You could browse the values of the newly computed attribute in the attribute manager or in the attributes tab of the [[node properties dialog]] (see the last entry telling you that the degree of the selected node equals 9).&lt;br /&gt;
You could also export the attributes via the [[attribute manager]] (which works similar to the import of attributes explained above) and store them in CSV tables. &lt;br /&gt;
&lt;br /&gt;
However, in many situation it is more insightful to visualize the computed centrality values. This is illustrated in the next section of this tutorial.&lt;br /&gt;
&lt;br /&gt;
== Mapping attributes to graphics: numerical attributes ==&lt;br /&gt;
&lt;br /&gt;
Centrality values (such as the node degrees that have been computed above) are numerical attributes. These can be mapped to graphical variables that let the user distinguish between larger and smaller. Examples of such graphics are size, position (x/y-coordinates), or color gradient. For instance, to map the node degree to the node size you can proceed similar as for mapping categorical attributes (illustrated above). In the [[visualization tab]] choose &#039;&#039;&#039;category&#039;&#039;&#039;=&#039;&#039;mapping&#039;&#039;, &#039;&#039;&#039;type&#039;&#039;&#039;=&#039;&#039;size&#039;&#039;, &#039;&#039;&#039;property&#039;&#039;&#039;=&#039;&#039;node area&#039;&#039;, and &#039;&#039;&#039;node value&#039;&#039;&#039;=&#039;&#039;degree&#039;&#039;; click on &#039;&#039;&#039;visualize!&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Network layout ==&lt;br /&gt;
&lt;br /&gt;
Network layout algorithms compute the positions of nodes, links, and/or labels to yield nice network images. For convenience, a general-purpose layout algorithm can be initiated by clicking on the [[Quick_layout|quick layout button]] [[File:Quick_layout.png|link=quick_layout]] in visone&#039;s toolbar. All other layout algorithms can be initiated from the [[visualization tab]] (select &#039;&#039;&#039;category&#039;&#039;&#039;=&#039;&#039;layout&#039;&#039;). The different choices in the drop-down menu right of &#039;&#039;&#039;layout&#039;&#039;&#039; determine which positions are to be modified. More explanation can be found in the page on the [[visualization tab]].&lt;br /&gt;
&lt;br /&gt;
== Selecting elements dependent on attribute values ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_select_links.png|500px|thumb|right]] Finally, we demonstrate how network elements (i.e., nodes and links) that have specific attribute values can be selected. Therefore, download the file [[Media:Egonet.graphml|&#039;&#039;&#039;Egonet.graphml&#039;&#039;&#039;]] (see the description on the page [[Egoredes (data)]]), save it to your computer, and open it in visone via the menu &#039;&#039;&#039;file, open&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This network turns out to be one big mess containing 45 nodes and 990 links (a simple calculation tells you that the network is complete, i.e., each pair of nodes is connected by a link). The information about which actors actually know each other is encoded in the link attribute &#039;&#039;&#039;rating&#039;&#039;&#039; which can assume the values &#039;&#039;Not at all likely&#039;&#039;, &#039;&#039;Maybe&#039;&#039;, or &#039;&#039;Very likely&#039;&#039;. To delete all links that are not rated as &#039;&#039;Very likely&#039;&#039; (say), open the [[attribute manager]], click on the button &#039;&#039;&#039;link&#039;&#039;&#039; in the top, and &#039;&#039;&#039;select&#039;&#039;&#039; on the left-hand side, select the link attribute &#039;&#039;&#039;rating&#039;&#039;&#039; in the drop-down menu. The table shows the different values of this attribute along with the number of links that are assume this value and clicking on one or several rows selects these links. The selected links can be deleted either from the [[link context menu]] or from the menu &#039;&#039;&#039;links, delete links&#039;&#039;&#039;. Selecting and deleting those links that are rated as &#039;&#039;Not at all likely&#039;&#039;, or &#039;&#039;Maybe&#039;&#039; and layouting the network via the [[Quick_layout|quick layout button]] shows you a network that is identical to the one encoded in the adjacency matrix &#039;&#039;Egonet_ties.csv&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
More sophisticated ways to select network elements are illustrated in the next tutorial on [[Managing_attributes_(tutorial)|advanced attribute management]].&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_select.png&amp;diff=1432</id>
		<title>File:Attribute manager select.png</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_select.png&amp;diff=1432"/>
		<updated>2014-03-19T12:32:33Z</updated>

		<summary type="html">&lt;p&gt;Lerner: uploaded &amp;amp;quot;File:Attribute manager select.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[File:Attribute manager select links.png]]&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_select.png&amp;diff=1431</id>
		<title>File:Attribute manager select.png</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_select.png&amp;diff=1431"/>
		<updated>2014-03-19T12:31:06Z</updated>

		<summary type="html">&lt;p&gt;Lerner: moved File:Attribute manager select.png to File:Attribute manager select links.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[File:Attribute manager select links.png]]&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_select_links.png&amp;diff=1430</id>
		<title>File:Attribute manager select links.png</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_select_links.png&amp;diff=1430"/>
		<updated>2014-03-19T12:31:05Z</updated>

		<summary type="html">&lt;p&gt;Lerner: moved File:Attribute manager select.png to File:Attribute manager select links.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1429</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1429"/>
		<updated>2014-03-19T12:29:14Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* Show &amp;amp; edit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Show &amp;amp; edit ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Show &amp;amp; edit&#039;&#039;&#039; category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attributes. &lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager_show_n_edit.png]]&lt;br /&gt;
&lt;br /&gt;
You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box is checked and you can specify whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#Import_&amp;amp;_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]].&lt;br /&gt;
&lt;br /&gt;
== Select == &lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
* check mark: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* name field: enables the (re-)definition of attribute names; to create a new attribute you have to use this field to define a name first&lt;br /&gt;
* type selection: defines the type (text, binary, integer, decimal, text list, integer list, decimal list) of the attribute&lt;br /&gt;
* default: can be used to define a default value for this attribute that is assigned to all nodes automatically (since only declaring the name and type of an attribute function does not define its values)&lt;br /&gt;
* description&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to press the apply button at the bottom of the attribute manager.&lt;br /&gt;
&lt;br /&gt;
== Manipulate ==&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
== Filter ==&lt;br /&gt;
&lt;br /&gt;
== Import &amp;amp; export == &lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;br /&gt;
&lt;br /&gt;
== grouped modifications ==&lt;br /&gt;
&lt;br /&gt;
=== operations ===&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== import and export ===&lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_show_n_edit.png&amp;diff=1428</id>
		<title>File:Attribute manager show n edit.png</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=File:Attribute_manager_show_n_edit.png&amp;diff=1428"/>
		<updated>2014-03-19T12:25:12Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1427</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1427"/>
		<updated>2014-03-19T12:20:28Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* individual modifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Show &amp;amp; edit ==&lt;br /&gt;
&lt;br /&gt;
The values category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attribute functions that are declared. You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box at the bottom right of the attribute manager is checked. Additionally, you can specify whether to &#039;&#039;&#039;show default values&#039;&#039;&#039; (bottom left) and whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#Import_&amp;amp;_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]].&lt;br /&gt;
&lt;br /&gt;
== Select == &lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
* check mark: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* name field: enables the (re-)definition of attribute names; to create a new attribute you have to use this field to define a name first&lt;br /&gt;
* type selection: defines the type (text, binary, integer, decimal, text list, integer list, decimal list) of the attribute&lt;br /&gt;
* default: can be used to define a default value for this attribute that is assigned to all nodes automatically (since only declaring the name and type of an attribute function does not define its values)&lt;br /&gt;
* description&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to press the apply button at the bottom of the attribute manager.&lt;br /&gt;
&lt;br /&gt;
== Manipulate ==&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
== Filter ==&lt;br /&gt;
&lt;br /&gt;
== Import &amp;amp; export == &lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;br /&gt;
&lt;br /&gt;
== grouped modifications ==&lt;br /&gt;
&lt;br /&gt;
=== operations ===&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== import and export ===&lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1426</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1426"/>
		<updated>2014-03-19T09:51:00Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* What to do with which attributes? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
In general, whenever you have specified an operation you have to click on the &#039;&#039;&#039;apply&#039;&#039;&#039; button to execute it. Depending on the operation you can choose to apply it only to the current network or to several networks at once, you can specify whether the operation should be only applied to the currently selected elements and whether the operation result should modify the network directly (choose &#039;&#039;result in&#039;&#039; &#039;&#039;&#039;same tab&#039;&#039;&#039;) or whether visone should first create a copy of the network and apply the operation to this copy (&#039;&#039;&#039;new tab&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== individual modifications ==&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#import_and_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]]. Creation of new attributes and type selection is illustrated in the [[Introducing_the_visual_network_editor_(tutorial)|tutorial about the visual network editor]].&lt;br /&gt;
&lt;br /&gt;
=== configuration ===&lt;br /&gt;
&lt;br /&gt;
* check mark: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* name field: enables the (re-)definition of attribute names; to create a new attribute you have to use this field to define a name first&lt;br /&gt;
* type selection: defines the type (text, binary, integer, decimal, text list, integer list, decimal list) of the attribute&lt;br /&gt;
* default: can be used to define a default value for this attribute that is assigned to all nodes automatically (since only declaring the name and type of an attribute function does not define its values)&lt;br /&gt;
* description&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to press the apply button at the bottom of the attribute manager.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== values ===&lt;br /&gt;
&lt;br /&gt;
The values category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attribute functions that are declared. You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box at the bottom right of the attribute manager is checked. Additionally, you can specify whether to &#039;&#039;&#039;show default values&#039;&#039;&#039; (bottom left) and whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Values that are &#039;&#039;not assigned&#039;&#039; yet, are marked &#039;&#039;N/A&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== grouped modifications ==&lt;br /&gt;
&lt;br /&gt;
=== operations ===&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== import and export ===&lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1425</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1425"/>
		<updated>2014-03-19T09:46:26Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[Attribute|attribute]] is a function that maps elements of the network (such as nodes or links) to values. An attribute has a name, domain (specifying the type of network elements it is defined on), type (specifying the possible values, such as &#039;&#039;text&#039;&#039;, &#039;&#039;integer&#039;&#039;, &#039;&#039;boolean&#039;&#039;, etc), and possibly a default value and a description. Attributes attach information to network elements, such as the name or age or geographic coordinates of a node or the width or capacity or encoded type of relation of a link. The &#039;&#039;&#039;attribute manager&#039;&#039;&#039; provides functionality related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes. The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
These categories of attribute management are further explained below.&lt;br /&gt;
&lt;br /&gt;
== individual modifications ==&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#import_and_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]]. Creation of new attributes and type selection is illustrated in the [[Introducing_the_visual_network_editor_(tutorial)|tutorial about the visual network editor]].&lt;br /&gt;
&lt;br /&gt;
=== configuration ===&lt;br /&gt;
&lt;br /&gt;
* check mark: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* name field: enables the (re-)definition of attribute names; to create a new attribute you have to use this field to define a name first&lt;br /&gt;
* type selection: defines the type (text, binary, integer, decimal, text list, integer list, decimal list) of the attribute&lt;br /&gt;
* default: can be used to define a default value for this attribute that is assigned to all nodes automatically (since only declaring the name and type of an attribute function does not define its values)&lt;br /&gt;
* description&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to press the apply button at the bottom of the attribute manager.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== values ===&lt;br /&gt;
&lt;br /&gt;
The values category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attribute functions that are declared. You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box at the bottom right of the attribute manager is checked. Additionally, you can specify whether to &#039;&#039;&#039;show default values&#039;&#039;&#039; (bottom left) and whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Values that are &#039;&#039;not assigned&#039;&#039; yet, are marked &#039;&#039;N/A&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== grouped modifications ==&lt;br /&gt;
&lt;br /&gt;
=== operations ===&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== import and export ===&lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1424</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1424"/>
		<updated>2014-03-19T09:32:42Z</updated>

		<summary type="html">&lt;p&gt;Lerner: /* What to do with which attributes? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. The attribute manager provides a variety of possibilities related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes.&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* &#039;&#039;&#039;node&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;link&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;dyad&#039;&#039;&#039; attributes&lt;br /&gt;
* &#039;&#039;&#039;network&#039;&#039;&#039; attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* &#039;&#039;&#039;show &amp;amp; edit&#039;&#039;&#039; displays the values of all (node, link, ...) attributes and allows to modify them manually&lt;br /&gt;
* &#039;&#039;&#039;select&#039;&#039;&#039; allows to select all elements taking specific values for a single specified attribute&lt;br /&gt;
* &#039;&#039;&#039;configure&#039;&#039;&#039; to add and delete attributes; change their names, range of values, description, or default values&lt;br /&gt;
* &#039;&#039;&#039;manipulate&#039;&#039;&#039; apply transformation functions to one or several attributes&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; specify potentially complex ways to select elemens (much more powerful than &#039;&#039;&#039;select&#039;&#039;&#039;)&lt;br /&gt;
* &#039;&#039;&#039;import &amp;amp; export&#039;&#039;&#039; read from and write to CSV files&lt;br /&gt;
&lt;br /&gt;
== individual modifications ==&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#import_and_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]]. Creation of new attributes and type selection is illustrated in the [[Introducing_the_visual_network_editor_(tutorial)|tutorial about the visual network editor]].&lt;br /&gt;
&lt;br /&gt;
=== configuration ===&lt;br /&gt;
&lt;br /&gt;
* check mark: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* name field: enables the (re-)definition of attribute names; to create a new attribute you have to use this field to define a name first&lt;br /&gt;
* type selection: defines the type (text, binary, integer, decimal, text list, integer list, decimal list) of the attribute&lt;br /&gt;
* default: can be used to define a default value for this attribute that is assigned to all nodes automatically (since only declaring the name and type of an attribute function does not define its values)&lt;br /&gt;
* description&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to press the apply button at the bottom of the attribute manager.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== values ===&lt;br /&gt;
&lt;br /&gt;
The values category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attribute functions that are declared. You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box at the bottom right of the attribute manager is checked. Additionally, you can specify whether to &#039;&#039;&#039;show default values&#039;&#039;&#039; (bottom left) and whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Values that are &#039;&#039;not assigned&#039;&#039; yet, are marked &#039;&#039;N/A&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== grouped modifications ==&lt;br /&gt;
&lt;br /&gt;
=== operations ===&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== import and export ===&lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1423</id>
		<title>Attribute manager</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Attribute_manager&amp;diff=1423"/>
		<updated>2014-03-19T09:26:29Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The attribute manager is started by clicking on its icon [[File:Attribute_manager.png|link=attribute_manager]] in visone&#039;s toolbar. The attribute manager provides a variety of possibilities related to the creation, configuration, and automatical modification of attributes, as well as methods for selecting and filtering nodes and links based on their attributes.&lt;br /&gt;
&lt;br /&gt;
== What to do with which attributes? ==&lt;br /&gt;
&lt;br /&gt;
The four buttons in the top row are used to select the type of elements whose attributes one wants to manage, namely&lt;br /&gt;
* node attributes&lt;br /&gt;
* link attributes&lt;br /&gt;
* dyad attributes&lt;br /&gt;
* network attributes&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute_manager2.png]]&lt;br /&gt;
&lt;br /&gt;
The six buttons on the left-hand side are used to specify what kind of management one is looking for, namely&lt;br /&gt;
* configuration management (manually)&lt;br /&gt;
* value management (manually)&lt;br /&gt;
* operation involving value management (automatically)&lt;br /&gt;
* import &amp;amp; export management (automatically)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== individual modifications ==&lt;br /&gt;
&lt;br /&gt;
Note, that attribute values are typically not added manually (which would be tiresome). It is more usual that attributes are [[#import_and_export|imported]] from files or computed by a [[analysis_tab|network analysis algorithm]]. Creation of new attributes and type selection is illustrated in the [[Introducing_the_visual_network_editor_(tutorial)|tutorial about the visual network editor]].&lt;br /&gt;
&lt;br /&gt;
=== configuration ===&lt;br /&gt;
&lt;br /&gt;
* check mark: the check mark in the left column defines the attribute that is displayed as label (for nodes/links)&lt;br /&gt;
* name field: enables the (re-)definition of attribute names; to create a new attribute you have to use this field to define a name first&lt;br /&gt;
* type selection: defines the type (text, binary, integer, decimal, text list, integer list, decimal list) of the attribute&lt;br /&gt;
* default: can be used to define a default value for this attribute that is assigned to all nodes automatically (since only declaring the name and type of an attribute function does not define its values)&lt;br /&gt;
* description&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to press the apply button at the bottom of the attribute manager.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== values ===&lt;br /&gt;
&lt;br /&gt;
The values category can be used to explore the values that the nodes/links (or the selected nodes/links, if there are selected nodes/links) assume on all attribute functions that are declared. You can also modify the values if the &#039;&#039;&#039;allow editing&#039;&#039;&#039; box at the bottom right of the attribute manager is checked. Additionally, you can specify whether to &#039;&#039;&#039;show default values&#039;&#039;&#039; (bottom left) and whether to display only a subset of attributes (use check marks at the top).&lt;br /&gt;
&lt;br /&gt;
Values that are &#039;&#039;not assigned&#039;&#039; yet, are marked &#039;&#039;N/A&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== grouped modifications ==&lt;br /&gt;
&lt;br /&gt;
=== operations ===&lt;br /&gt;
&lt;br /&gt;
The operations category provides means to change a node/link attribute function as a whole. Modification of attributes is illustrated in the [[Managing_attributes_(tutorial)|tutorial on &#039;&#039;advanced attribute management&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
You might just want to &#039;&#039;&#039;copy&#039;&#039;&#039; or &#039;&#039;&#039;delete&#039;&#039;&#039; (select according &#039;&#039;operation&#039;&#039;) an existing attribute function (select according &#039;&#039;attribute&#039;&#039;) - and provide a new name of the &#039;&#039;result attribute&#039;&#039; (if you don&#039;t want to delete or, in general, overwrite the current one).&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;rank&#039;&#039;&#039; the nodes/links in &#039;&#039;&#039;ascending&#039;&#039;&#039; or &#039;&#039;&#039;descending&#039;&#039;&#039; &#039;&#039;order&#039;&#039; with regard to an &#039;&#039;attribute&#039;&#039;, creating an integer type &#039;&#039;result attribute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge to list&#039;&#039;&#039; enables you to select a number of &#039;&#039;source attributes&#039;&#039; (pressing Crtl key to add single ones or holding shift key to select a number of successive ones) to be merged into a text &#039;&#039;result attribute&#039;&#039;, being a comma separated list of these values.&lt;br /&gt;
&lt;br /&gt;
There are also a number of possibilities to &#039;&#039;&#039;convert list values&#039;&#039;&#039;, namely calculating the &#039;&#039;&#039;maximum&#039;&#039;&#039;, &#039;&#039;&#039;minimum&#039;&#039;&#039;, &#039;&#039;&#039;average&#039;&#039;&#039;, or &#039;&#039;&#039;sum&#039;&#039;&#039; of entries (integer/decimal list), or &#039;&#039;&#039;concatenate&#039;&#039;&#039; them (text list).&lt;br /&gt;
&lt;br /&gt;
Finally, &#039;&#039;&#039;manipulate values&#039;&#039;&#039; provides means to automatically&lt;br /&gt;
* &#039;&#039;&#039;invert&#039;&#039;&#039; (note, that a zero attribute value will result in a N/A entry in the result attribute!)&lt;br /&gt;
* &#039;&#039;&#039;reverse&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;add&#039;&#039;&#039; a specified &#039;&#039;offset&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;scale&#039;&#039;&#039; with a specified &#039;&#039;scalar&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;normalize&#039;&#039;&#039; (i.e. each value is divided by the maximum values)&lt;br /&gt;
* &#039;&#039;&#039;standardize&#039;&#039;&#039; (i.e. each value is divided by the sum of all values)&lt;br /&gt;
* &#039;&#039;&#039;round&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;round up&#039;&#039;&#039; to specified &#039;&#039;fraction digits&#039;&#039;&lt;br /&gt;
the values of an attribute function. While the attribute manager, thus, offers only a limited set of functions to transform attributes, general transformations can be specified and executed via visone&#039;s [[R_console_tab|R interface]]; this is illustrated in the [[R_console_(tutorial)|tutorial on &#039;&#039;using visone&#039;s R console&#039;&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== import and export ===&lt;br /&gt;
&lt;br /&gt;
Attributes can be imported from and exported to files in &#039;&#039;comma-separated value tables&#039;&#039;; this is illustrated in the [[Visualization_and_analysis_(tutorial)|tutorial on &#039;&#039;visualization and analysis&#039;&#039;]]. When importing attributes from a .csv file you have to specify how the data shall be joined. That is, the .csv file should contain a column that is named according to the &#039;&#039;&#039;join by&#039;&#039;&#039; attribute of the network. It is also possible to import an additional link attribute via a .csv matrix (nodes IDs in the matrix have to be the same as in the network).&lt;br /&gt;
&lt;br /&gt;
When exporting attributes you can specify how the data shall be sorted, using the attribute selected for &#039;&#039;&#039;sort by&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are working with more than one network tabs, you can also export one specified attribute of all open networks as a table.&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Link_selection_dialog&amp;diff=1422</id>
		<title>Link selection dialog</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Link_selection_dialog&amp;diff=1422"/>
		<updated>2014-03-19T08:52:27Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Note: the link selection dialog is no longer part of the visone GUI. Methods to select and filter links are provided by the [[attribute manager]].&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The link selection dialog is called from the [[links_menu|links menu]], enabling convenient selection of link subsets based on a wealth of possible similarities.&lt;br /&gt;
&lt;br /&gt;
Multiple [[#conditions|selection conditions]] and [[#operations|selection operations]] can be arbitrarily combined.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== conditions ==&lt;br /&gt;
&lt;br /&gt;
You have to mark the conditions you want to use in the left column; and let those you do not want to use unmarked.&lt;br /&gt;
&lt;br /&gt;
In general, &#039;&#039;&#039;ordinal&#039;&#039;&#039; visual properties and data attributes allow a selection based on smaller (&amp;lt;), equal (=) or greater (&amp;gt;) values according to a specified threshold (right field). You may also which to set two check marks to create selections based on smaller equal (&amp;lt; and =), greater equal (= and &amp;gt;), or non-equal (&amp;lt; and &amp;gt;) conditions. &lt;br /&gt;
&lt;br /&gt;
Multiple conditions on &#039;&#039;&#039;nominal&#039;&#039;&#039; properties can be combined, performing successive [[#operations|selection operations]] accordingly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== visual properties ===&lt;br /&gt;
&lt;br /&gt;
* shape&lt;br /&gt;
* color&lt;br /&gt;
* style&lt;br /&gt;
* border color&lt;br /&gt;
* width&lt;br /&gt;
* direction - directed or undirected&lt;br /&gt;
* confirmation - receiver confirmed, sender confirmed or (mutually) confirmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== attributes ===&lt;br /&gt;
&lt;br /&gt;
Any link attribute can be incorporated into selection conditions, too.&lt;br /&gt;
In terms of text attributes, you can ask to match exactly the text entered in the right field, or to contain this text at least as a substring.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== incidence with selected nodes ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;direction:&#039;&#039;&#039; You can select links that have at least one selected node as source (&#039;&#039;&#039;out&#039;&#039;&#039;) or sink (&#039;&#039;&#039;in&#039;&#039;&#039;). With regard to an undirected link, the incident nodes are both, source and sink.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;confirms:&#039;&#039;&#039; Similarly, you can select a link based on whether it is confirmed (&#039;&#039;&#039;yes&#039;&#039;&#039;) by at least one selected node or not (&#039;&#039;&#039;no&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;number:&#039;&#039;&#039; Additionally, you can select a link based on whether &#039;&#039;&#039;none&#039;&#039;&#039; of its incident nodes is selected, at least &#039;&#039;&#039;one&#039;&#039;&#039; of its incident nodes is selected or &#039;&#039;&#039;both&#039;&#039;&#039; of its incident nodes are selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== selected parallel links ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;direction:&#039;&#039;&#039; You can select links that connect two nodes in the &#039;&#039;&#039;same&#039;&#039;&#039; direction as at least one selected link and/or connect two nodes in the &#039;&#039;&#039;reverse&#039;&#039;&#039; direction as at least one selected link. With regard to an undirected link, there is no difference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== operations ==&lt;br /&gt;
&lt;br /&gt;
At the bottom of the selection dialog you have to chose which selection operation should be performed regarding the specified conditions.&lt;br /&gt;
&lt;br /&gt;
* replace: discards previous selections and creates a new selection with all links fulfilling the specified conditions&lt;br /&gt;
* add: adds all links fulfilling the specified conditions to current selection&lt;br /&gt;
* remove: removes all links fulfilling the specified conditions to current selection&lt;br /&gt;
* restrict: restricts the current selection to all contained links fulfilling the specified conditions&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
	<entry>
		<id>https://visone.ethz.ch/wiki/index.php?title=Node_selection_dialog&amp;diff=1421</id>
		<title>Node selection dialog</title>
		<link rel="alternate" type="text/html" href="https://visone.ethz.ch/wiki/index.php?title=Node_selection_dialog&amp;diff=1421"/>
		<updated>2014-03-19T08:50:58Z</updated>

		<summary type="html">&lt;p&gt;Lerner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Note: the node selection dialog is no longer part of the visone GUI. Methods to select and filter nodes are provided by the [[attribute manager]].&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The node selection dialog is called from the [[nodes_menu|nodes menu]], enabling convenient selection of node subsets based on a wealth of possible similarities.&lt;br /&gt;
&lt;br /&gt;
Multiple [[#conditions|selection conditions]] and [[#operations|selection operations]] can be arbitrarily combined.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== conditions ==&lt;br /&gt;
&lt;br /&gt;
You have to mark the conditions you want to use in the left column; and let those you do not want to use unmarked.&lt;br /&gt;
&lt;br /&gt;
In general, &#039;&#039;&#039;ordinal&#039;&#039;&#039; visual properties and data attributes allow a selection based on smaller (&amp;lt;), equal (=) or greater (&amp;gt;) values according to a specified threshold (right field). You may also which to set two check marks to create selections based on smaller equal (&amp;lt; and =), greater equal (= and &amp;gt;), or non-equal (&amp;lt; and &amp;gt;) conditions. &lt;br /&gt;
&lt;br /&gt;
Multiple conditions on &#039;&#039;&#039;nominal&#039;&#039;&#039; properties can be combined, performing successive [[#operations|selection operations]] accordingly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== visual properties ===&lt;br /&gt;
&lt;br /&gt;
* shape&lt;br /&gt;
* color&lt;br /&gt;
* border style&lt;br /&gt;
* border color&lt;br /&gt;
* x-coordinate&lt;br /&gt;
* y-coordinate&lt;br /&gt;
* width of shape&lt;br /&gt;
* height of shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== attributes ===&lt;br /&gt;
&lt;br /&gt;
Any node attribute can be incorporated into selection conditions, too.&lt;br /&gt;
In terms of text attributes, you can ask to match exactly the text entered in the right field, or to contain this text at least as a substring.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== incidence with selected links ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;direction:&#039;&#039;&#039; You can select nodes that are the source (&#039;&#039;&#039;out&#039;&#039;&#039;) or sink (&#039;&#039;&#039;in&#039;&#039;&#039;) of at least one selected link. When incident to an undirected link a node is both, a source and a sink of this link.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;confirms:&#039;&#039;&#039; Similarly, you can select a node based on whether it confirms (&#039;&#039;&#039;yes&#039;&#039;&#039;) at least one selected link or not (&#039;&#039;&#039;no&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== adjacency with selected nodes ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;direction:&#039;&#039;&#039; You can select nodes that are the source of a link to at least one selected node (&#039;&#039;&#039;predecessor&#039;&#039;&#039;) or a sink of a link from at least one selected node (&#039;&#039;&#039;successor&#039;&#039;&#039;), respectively. With regard to an undirected link, the incident nodes are both, predecessor and successor of each other.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;confirms:&#039;&#039;&#039; Similarly, you can select a node based on whether it has confirmed (&#039;&#039;&#039;yes&#039;&#039;&#039;) a link to at least one selected node or not (&#039;&#039;&#039;no&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== operations ==&lt;br /&gt;
&lt;br /&gt;
At the bottom of the selection dialog you have to chose which selection operation should be performed regarding the specified conditions.&lt;br /&gt;
&lt;br /&gt;
* replace: discards previous selections and creates a new selection with all nodes fulfilling the specified conditions&lt;br /&gt;
* add: adds all nodes fulfilling the specified conditions to current selection&lt;br /&gt;
* remove: removes all nodes fulfilling the specified conditions to current selection&lt;br /&gt;
* restrict: restricts the current selection to all contained nodes fulfilling the specified conditions&lt;/div&gt;</summary>
		<author><name>Lerner</name></author>
	</entry>
</feed>