Tasks Taxonomy for Graphs
From [Amar et al. 2005] and [Lee et al 2006].
- General Tasks
|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
|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
|Adjacency (direct connection)||
|Accessibility (direct or indirect connection)||
|On the Nodes||
|On the Links||
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.
- 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 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?
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