Tasks Taxonomy for Graphs: Difference between revisions

From InfoVis:Wiki
Jump to navigation Jump to search
(opHSWtOXiA)
Line 1: Line 1:
== Low-Level Tasks ==
Well, with graphs of 1000 nodes, I would pralboby say that every graph-based view will be difficult to use To improve usability, I think it would be great to have the possibility of collapsing a subgraph into a single node: after analyzing a subgraph, you select its nodes, then collapse them into a single one, so that the complexity of the whole graph decreases
 
From [Amar et al. 2005] and [Lee et al 2006].
 
* General Tasks
{|border="1"
|-
|'''Task'''||'''Description'''
|-
|Retrieve Value ||Given a set of cases, find attributes of those cases.
|-
|Filter||Given some conditions on attributes values, find data cases satisfying those conditions.
|-
|Compute Derived Value||Given a set of data cases, compute an aggregate numeric representation of those data cases.(e.g. average, median, and count)
|-
|Find Extremum||Find data cases possessing an extreme value of an attribute over its range within the data set.
|-
|Sort||Given a set of data cases, rank them according to some ordinal metric.
Determine Range Given a set of data cases and an attribute of interest, find the span of values within the set.
|-
|Characterize Distribution||Given a set of data cases and a quantitative attribute of interest, characterize the distribution of that attribute’s values over the set.
|-
|Find Anomalies||Identify any anomalies within a given set of data cases with respect to a given relationship or expectation, e.g. statistical outliers.
|-
|Cluster||Given a set of data cases, find clusters of similar attribute values.
|-
|Correlate||Given a set of data cases and two attributes, determine useful relationships between the values of those attributes.
|-
|Scan|| Quickly review a set of items.
|-
|Set Operation|| Given multiple sets of items, perform set operations on them. For example, find the intersection of the set of nodes.
|}
 
 
* Graph Specific Tasks
{|border="1"
|-
|'''Task'''||'''Description'''
|-
|Find Adjacent Nodes ||Given a node, find its adjacent nodes.
|}
 
 
== Graph Task Taxonomy ==
 
Examples are illustrated using 4 types of graphs:
*(FOAF): friend-of-a-friend
*(FW): food web
*(GO): gene ontology
*(ARM): airport routing map
 
=== Topology-based Tasks ===
 
{| border="1"
|-
|'''Task'''||'''Description''' || '''Examples'''
|-
| Adjacency (direct connection)
|
* Find the set of nodes adjacent to a node?
* How many nodes are adjacent to a node? 
* Which node has a maximum number of adjacent nodes?
||
*(FOAF)  Find the names of the direct friends of Eric. 
*(FW)  How many kinds of organisms do golden eagles eat?
*(FOAF)  Who is the most popular person?
|-
| Accessibility (direct or indirect connection)
|
* Find the set of nodes accessible from a node. 
* How many nodes are accessible from a node? 
* Find the set of nodes accessible from a node where the distance is less than or equal to n. 
* How many nodes are accessible from a node where the distance is less than or equal to n?
||
*(FOAF) Who are your friends, your friends’ friends, and so on? 
*(FOAF) How many friends are you connected to in this way?
*(ARM) To what cities can we go from Seoul, Korea by changing planes only once? 
|-
| Commmon Connection
|
* Given nodes, find a set of nodes that are connected to all of them.
||
*(FOAF)Find all the people who know both John and Jack.
|-
| Connectivty
|
*Find the shortest path between two nodes. 
*Identify clusters. 
*Identify connected components.
*Find bridges. 
*Find articulation points.
||
*(ARM)  What is the shortest path from Seoul, Korea to Athens, Greece?
*(FOAF) Count the number of clusters. 
*(FW)  There may be subgraphs independent of each other. Count the number of connected components in the graph
*(FOAF) Who is the person whose removal from the graph results in an unconnected graph?
*(FW) Which is the eating link whose removal from the graph results in an unconnected graph?
|}
 
=== Attribute-based Tasks ===
 
{| border="1"
|-
|'''Task'''||'''Description''' || '''Examples'''
|-
| On the Nodes
|
* Find the nodes having a specific attribute value. 
* Review the set of nodes.
||
*(FOAF)  Who do you know from the people currently shown on screen? 
*(FOAF)  How many people do you know from the ones currently shown on screen?
*(FOAF)  Are there any foreign-sounding names? 
|-
| On the Links
|
* Given a node, find the nodes connected only by certain types of links. 
* Which node is connected by a link having the largest/smallest value?
||
*(GO)  Find the nodes connected by “is-a” relationships from the “Biological Process” node.
*(FW)  If a link has an attribute representing the percentage of the diet, what is main food of American crow?
|}
 
=== Browsing Tasks ===
{| border="1"
|-
|'''Task'''||'''Description''' || '''Examples'''
|-
| Follow Path
|
* Follow a given path
||
* (FOAF) A user looks into A’s friend B, B’s friend C, and C’s friend D.
* (FW) Follow the flow of energy from grasses, to a rabbit that eats grass, to a carnivore that eats the rabbit, and to a carnivore that eats that carnivore.
|-
| Revisit
|
* Return to a previously visited node.
||
*(FOAF) After they follow a path in the above task, they may want to see A’s other friends.
*(FW) Find another carnivore that eats the same rabbit.
|}
 
=== Overview Tasks ===
This is a compound exploratory task to get estimated values quickly. For example, we might ask users to estimate the size of the social network.  Note that sometimes it is more important to be able to estimate the answer than to get an accurate one.  Some of the topology tasks can be done easily using an overview of the graph as well.  For example, using particular layout algorithms, it is easy to see whether or not there are clusters and connected components.  Other algorithms help to find shortest paths between nodes.  Overview also helps to find patterns.
 
Examples:
* estimate size of the network
* estimate the number of connected components
* is the network clustered?
* can you identify different patterns of connection?
* (FOAF) has the network a small-world structure?
 
== High-Level Tasks ==
 
High-Level tasks which are not a combination of lower level tasks.
 
* When we compare two or more food webs, we can ask the following questions: What do they have in common?  What are the differences among those food webs?  Is there any missing or conflicting information? 
* Due to errors in the data, several nodes may represent the same entity.  For example, the co-authorship graphs often have duplicate author nodes.  One important task is to identify whether two or more nodes represent the same person.
* How has the graph changed over time?
 
== Other tasks ==
 
There seems to be a set of tasks in the world that match very few of these, but show up often. I welcome others' ideas of how to categorize them:
 
"what is the general structure of this graph?"
http://www.networkweaving.com/blog/2006/09/nola-networks.html
 
"what is the distribution of vertex degree in this graph?" (That is, "how are well-linked nodes different from under-linked nodes?")
http://research.microsoft.com/research/pubs/view.aspx?type=Publication&id=1601
 
"how many As are linked to Bs? How many As link to other As?"
http://www.crookedtimber.org/2005/05/25/cross-ideological-conversations-among-bloggers/
 
I see things like this so often that they seem to dominate my understanding of how people think of graphing today. (Wattenberg obviously saw the same; his paper from CHI ’06 would do poorly on almost all of the tasks you discuss, but is incredibly effective for questions like “is Sales talking to Engineering?”)
 
 
It sounds like the rcasereh question would be:  Will the information visualization project organize information in a way that will truly facilitate the decision-making process for those who work in the College of Veterinary Medecine?  Sounds a lot like Melanie's question, but that's what I get from it.

Revision as of 01:28, 1 June 2012

Well, with graphs of 1000 nodes, I would pralboby say that every graph-based view will be difficult to use To improve usability, I think it would be great to have the possibility of collapsing a subgraph into a single node: after analyzing a subgraph, you select its nodes, then collapse them into a single one, so that the complexity of the whole graph decreases