I Introduction
Data mining techniques are intended to extract information from large volumes of data (Tan et al., 2006)
. Data mining includes tasks such as classification, regression, clustering, or anomaly detection, among others. Traditional data mining techniques are typically applied to tabulated data. Novel techniques have also been devised for semistructured or structured data, since exploiting the relationships among instances from a dataset leads to new research and development opportunities
(Getoor and Diehl, 2005).For example, network data mining has been used to predict previously unknown protein interactions in proteinprotein interaction networks (Martínez et al., 2014). It has also been used to study and predict future author collaborations and tendencies in coauthorship networks (Pavlov and Ichise, 2007). Different network mining techniques are used by popular internet search engines to rank the most relevant websites (Page et al., 1999). These are only some examples of the large number of applications of network data mining.
There are many software tools that facilitate the analysis of networked data. Some tools provide closed solutions for end users who need to work with their own network data sets, whereas other tools cater to software developers as software libraries that collect network analysis algorithms. Most tools allow the analysis of network topology and the computation of different structural properties of networks having thousands or even millions of nodes. Some of them also include implementations of specific network data mining techniques, such as community detection algorithms or predictive models, including link prediction (Lü and Zhou, 2011) and epidemic models (Keeling and Eames, 2005).
For instance, Pajek (Batagelj and Mrvar, 1998), NodeXL (Smith et al., 2009), Gephi (Bastian et al., 2009), and UCINET (Borgatti et al., 2002) are widely used for social network analysis (SNA). Graphviz (Ellson et al., 2002) and Cytoscape (Shannon et al., 2003) are two well–known alternatives for network visualization. Finally, igraph (Csardi and Nepusz, 2006) and NetworkX (Schult and Swart, 2008) are two popular software libraries of network algorithms. A more comprehensive and up–to–date list of available software tools can be found at Wikipedia: https://en.wikipedia.org/wiki/Social_network_analysis_software.
NOESIS, whose name stands for Network–Oriented Exploration, Simulation, and Induction System, is a software framework for network analysis and mining. It tries to combine the best features of closed social network analysis tools and extensible algorithm libraries, while providing support for parallel execution, something that most listed tools lack. NOESIS is completely written in Java and its source code has been released under a permissive BSD open source license.
Our paper is structured as follows. In Section 2, the NOESIS architectural design principles are briefly described. Section 3 covers the network analysis techniques included in NOESIS. Network data mining techniques are surveyed in Section 4. Finally, Section 5 describes the NOESIS project current status and roadmap.
Ii The design of the NOESIS framework
NOESIS has been designed to be an easily–extensible framework whose architecture provides the basis for the implementation of network data mining techniques. In order to achieve this, NOESIS is designed around abstract interfaces and a set of core classes that provide essential functions, which allows the implementation of different features in independent components with strong cohesion and loose coupling. NOESIS components are designed to be maintainable and reusable.
ii.1 System architecture
The NOESIS framework architecture and its core subsystems are displayed in Figure 1. These subsystems are described below.
The lowestlevel component is the hardware abstraction layer (HAL), which provides support for the execution of algorithms in a parallel environment and hides implementation details and much of the underlying technical complexity. This component provides different building blocks for implementing wellstudied parallel programming design patterns, such as MapReduce (Dean and Ghemawat, 2008). For example, we would just write result = (double) Parallel.reduce( index >x[index] * y[index], ADD, 0, SIZE1)
to compute the dot product of two vectors in parallel. The HAL does not only implement structured parallel programming design patterns, but it is also responsible for task scheduling and parallel execution. It allows the adjustment of parallel execution parameters, including the task scheduling algorithm.
The reflective kernel is at the core of NOESIS and provides its main features. The reflective kernel provides the base models (data structures) and tasks (algorithms) needed to perform network data mining, as well as the corresponding metaobjects and metamodels, which can be manipulated at run time. It is the underlying layer that supports a large collection of network analysis algorithms and data mining techniques, which are described in the following section. Different types of networks are dealt with using an unified interface, allowing us to choose the particular implementation that is the most adequate for the spatial and computational requirements of each application. Algorithms provided by this subsystem are built on top of the HAL building blocks, allowing the parallelized execution of algorithms whenever possible.
The data access layer (DAL) provides an unified interface to access external data sources. This subsystem allows reading and writing networks in different file formats, providing implementations for some of the most important standardized network file formats. This module also enables the development of data access components for other kinds of data sources, such as network streaming.
Finally, an application generator is used to build a complete graphical user interface following a model driven software development (MDSD) approach. This component provides a friendly user interface that allows users without programming skills to use most of the NOESIS framework features.
ii.2 Core classes
The core classes and interfaces shown in Figure 2 provide the foundation for the implementation of different types of networks with specific spatial and computational requirements. Basic network operations include adding and removing nodes, adding and removing links, or querying a node neighborhood. More complex operations are provided through specialized components.
NOESIS supports networks with attributes both in their nodes and their links. These attributes are defined according to predefined data models, including categorical and numerical values, among others.
ii.3 Supported data formats
Different file formats have been proposed for network datasets. Some data formats are more space efficient, whereas others are more easily parseable.
NOESIS supports reading and writing network data sets using the most common data formats. For example, the GDF file format is a CSVlike format used by some software tools such as GUESS and Gephi. It supports attributes in both nodes and links. Another supported file format is GML, which stands for Graph Modeling Language. GML is a hierarchical ASCIIbased file format. GraphML is another hierarchical file format based on XML, the ubiquitous eXtensible Markup Language developed by the W3C.
Other file formats are supported by NOESIS, such as the Pajek file format, which is similar to GDF, or the file format of the datasets from the Stanford Network Analysis Platform (SNAP) (Leskovec and Krevl, 2014).
ii.4 Graphical user interface
In order to allow users without programming knowledge to use most of the NOESIS features, a lightweight easy–to–use graphical user interface is included with the standard NOESIS framework distribution. The NOESIS GUI allows non–technical end users loading, visualizing, and analyzing their own network data sets by applying all the techniques provided with NOESIS.
Some screenshots of this GUI are shown in Figure 3
. A canvas is used to display the network in every moment. The network can be manipulated by clicking or dragging nodes. At the top of the window, a menu gives access to different options and data mining algorithms. The
Network menu allows loading a network from an external source and exporting the results using different file formats, as well as creating images of the current network visualization both as raster and vector graphics image. The View menu allows the customization of the network appearance by setting specific layout algorithms and custom visualization styles. In addition, this menu allows binding the visual properties of nodes and links to their attributes. The Data menu allows the exploration of attributes for each node and link. Finally, the Analysis menu gives access to most of the techniques that will be described in the following sections.Iii Network analysis tools
NOESIS is designed to ease the implementation of network analysis tools. It also includes reusable implementations of a large collection of popular network–related techniques, from graph visualization (Tamassia, 2013) and common graph algorithms, to network structural properties (Newman, 2010) and network formation models (Jackson, 2008). The network analysis tools included in NOESIS and the modules that implement them are introduced in this section.
iii.1 Network models
NOESIS implements a number of popular random network generation models, which are described by probability distributions or random processes. Such models have been found to be useful in the study and understanding of certain properties or behaviors observed in realworld networks.
Among the models included in NOESIS, the Erdös–Rényi model (Erdős and Rényi, 1959) is one of the simplest ones. The Gilbert model (Gilbert, 1959) is similar but a probability of existence is given for links instead. The anchored network model is also similar to the two previous models, with the advantage of reducing the occurrence of isolated nodes, but at the cost of being less than perfectly random. Finally, the connected random model is a variation of the anchored model that avoids isolated nodes.
Other models included in NOESIS exhibit specific properties often found in realworld networks. For example, the Watts–Strogatz model (Watts and Strogatz, 1998) generates networks with smallworld properties, that is, low diameter and high clustering. This model starts by creating a ring lattice with a given number of nodes and a given mean degree, where each node is connected to its nearest neighbors on both sides. In the following steps, each link is rewired to a new target node with a given probability, avoiding selfloops and link duplication.
Despite the smallworld properties exhibited by networks generated by the Watts–Strogatz model are closer to real world networks than those generated by models based on the Erdös–Rényi approach, they still lack some important properties observed in real networks. The Barabási–Albert model (Albert and Barabási, 2002) is another wellknown model that generates networks whose node degree distribution follows a power law, which leads to scalefree networks. This model is driven by a preferential attachment process, where new nodes are added and connected to existing nodes with a probability proportional to their current degree. Another model with very similar properties to Barabási–Albert’s model is the Price’s citation model (Newman, 2003).
In addition to random network models, a number of regular network models are included in NOESIS. These models generate synthetic networks that are useful in the process of testing new algorithms. The networks regular models include complete networks, where all nodes are interconnected; star networks, where all nodes are connected to a single hub node; ring networks, where each node is connected to its closest two neighbors along a ring; tandem networks, like ring model but without closing the loop; mesh network, where nodes are arranged in rows and columns, and connected only to their adjacent nodes; toruses, meshes where nodes in the extremes of the mesh are connected; hypercubes; binary trees; and isolates, a network without links.
iii.2 Structural properties of networks
Network structural properties allow the quantification of features or behaviors present in the network. They can be used, for instance, to measure network robustness or reveal important nodes and links. NOESIS considers three types of structural properties: node properties, node pair properties (for pairs both with and without links among them), and global properties.
NOESIS provides a large number of techniques for analyzing network structural properties. Many structural properties can be computed for nodes. For example, indegree and outdegree, indicate the number of incoming and outgoing links, respectively. Related to node degree, two techniques to measure node degree assortativity have been included: biased (Piraveenan et al., 2008) and unbiased (Piraveenan et al., 2010) node degree assortativity. Node assortativity is a score between and that measures the degree correlation between pairs of connected nodes. The clustering coefficient can also be computed for nodes. The clustering coefficient of a node is the fraction of its neighbors that are also connected among them.
Reachability scores are centrality measures that allow the analysis of how easy it is to reach a node from other nodes. The eccentricity of a node is defined as the maximum distance to any other node (Hage and Harary, 1995). The closeness, however, is the inverse of the sum of the distance from a given node to all others (Bavelas, 1950). An adjusted closeness value that normalizes the closeness according to the number of reachable nodes can also be used. Inversely to closeness, average path length is defined as the mean distance of all shortest paths to any other node. Decay is yet another reachability score, computed as the summation of a delta factor powered by the path length to any other node (Jackson, 2008). It is interesting to note that with a delta factor close to , the measure becomes the degree of the node, whereas with a delta close to , the measure becomes the component size of the component the node is located at. A normalized decay score is also available.
Betweenness, as reachability, is another way to measure node centrality. Betweenness, also known as Freeman’s betweenness, is a score computed as the count of shortest paths the node is involved in (Freeman, 1977). Since this score ranges from to for the number of nodes in stronglyconnected networks, a normalized variant is typically used.
Finally influence algorithms provide a different perspective on node centrality. These techniques measure the power of each node to affect others. The most popular influence algorithm is PageRank (Page et al., 1999), since it is used by the Google search engine. PageRank computes a probability distribution based on the likelihood of reaching a node starting from any other node. The algorithm works by iteratively updating node probability based on direct neighbors probabilities, which leads to convergence if the network satisfies certain properties. A similar algorithm is HITS (Kleinberg, 1999)
, which stands for hyperlinkinduced topic search. It follows an iterative approach, as PageRank, but computes two scores per node: the hub, which is a score related to how many nodes a particular node links, and the authority, which is a score related to how many hubs link a particular node. Both scores are connected by an iterative updating process: authority is updated according to the hub scores of nodes connected by incoming links and hub is updated according to authority scores of nodes connected by outgoing links. Eigenvector centrality is another iterative method closely related to PageRank, where nodes are assigned a centrality score based on the summation of the centrality of their neighbors nodes. Katz centrality considers all possible paths, but penalizes long ones using a given damping factor
(Katz, 1953). Finally, diffusion centrality (Kang et al., 2012) is another influence algorithm based on Katz centrality. The main difference is that, while Katz considers infinite length paths, diffusion centrality considers only paths of a given limited length.In the following example, we show how to load a network from a data file and compute its structural properties using NOESIS, its PageRank scores in particular:
FileReader fileReader = new FileReader("karate.gml"); NetworkReader reader = new GMLNetworkReader(fileReader); Network network = reader.read(); PageRank task = new PageRank(network); NodeScore score = task.call();
Different structural properties for links can also be computed by NOESIS. For example, link betweenness, which is the count of shortest paths the link is involved in, or link rays, which is the number of possible paths between two nodes that cross a given link. Some of these properties are used by different network data mining algorithms.
iii.3 Network visualization techniques
Humans are still better than machines at the recognition of certain patterns when analyzing data in a visual way. Network visualization is a complex task since networks tend to be huge, with thousands nodes and links. NOESIS enables the visualization of networks by providing the functionality needed to render the network and export the resulting visualization using different image file formats.
NOESIS provides different automatic graph layout techniques, such as the well–known Fruchterman–Reingold (Fruchterman and Reingold, 1991) and Kamada–Kawai (Kamada and Kawai, 1989) force–based layout algorithms. Force–based layout algorithms assign forces among pairs of nodes and solve the system to reach an equilibrium point, which usually leads to an aesthetic visualization.
Hierarchical layouts (Tamassia, 2013), which arrange nodes in layers trying to minimize edge crossing, are also included. Different radial layout algorithms are included as well (Wills, 1999). These layouts are similar to the hierarchical ones, but arrange nodes in concentric circles. Finally, several regular layouts are included. These layouts are common for visualizing regular networks, such as meshes or stars.
NOESIS allows tuning the network visualization look and feel. The visual properties of nodes and links can be customized, including color, size, borders, and so on. In addition, visual properties can be bound to static or dynamic properties of the network. For example, node sizes can be bound to a specific centrality score, allowing the visual display of quantitative information.
Iv Network data mining techniques
Network data mining techniques exist for both unsupervised and supervised settings. NOESIS includes a wide array of community detection methods (Lancichinetti and Fortunato, 2009) and link prediction techniques (LibenNowell and Kleinberg, 2007). These algorithms are briefly described below.
iv.1 Community detection
Community detection can be defined as the task of finding groups of densely connected nodes. A wide range of community detection algorithms have been proposed, exhibiting different pros and cons. NOESIS features different families of community detection techniques and implements more than ten popular community detection algorithms. The included algorithms, their time complexity, and their bibliographic references are shown in Table 1.
Type  Name  Time complexity  Reference 

Hierarchical  Singlelink (SLINK)  (Sibson, 1973)  
Completelink (CLINK)  (Defays, 1977)  
Averagelink (UMPGA)  (Liu, 2011)  
Modularity  Fast greedy  (Newman, 2004)  
Multistep greedy  (Schuetz and Caflisch, 2008)  
Partitional  KernighanLin bipartitioning  (Kernighan and Lin, 1970)  
Kmeans  (MacQueen et al., 1967)  
Spectral  Ratio cut algorithm (EIG1)  (Hagen and Kahng, 1992)  
Jordan and Weiss NG algorithm (KNSC1)  (Ng et al., 2002)  
Spectral kmeans  (Shi and Malik, 2000)  
Overlapping  BigClam  (Yang and Leskovec, 2013) 
Computational time complexity and bibliographic references for the community detection techniques provided by NOESIS. In the time complexity analysis, is the number of nodes in the network, is the maximum node degree, and is the desired number of clusters.
NOESIS provides hierarchical clustering algorithms. Agglomerative hierarchical clustering treats each node as a cluster, and then iteratively merges clusters until all nodes are in the same cluster
(Fortunato, 2010). Different strategies for the selection of clusters to merge have been implemented, including singlelink (Sibson, 1973), which selects the two clusters with the smallest minimum pairwise distance; completelink (Defays, 1977), which selects the two clusters with the smallest maximum pairwise distance; and averagelink (Liu, 2011), which selects the two clusters with the smallest average pairwise distance.Modularitybased techniques are also available in our framework. Modularity is a score that measures the strength of particular division into modules of a given network. Modularity–based techniques search for communities by attempting to maximize their modularity score (Newman and Girvan, 2004). Different greedy strategies, including fast greedy (Newman, 2004) and multistep greedy (Schuetz and Caflisch, 2008), are available. These greedy algorithms merge pairs of clusters that maximize the resulting modularity, until all possible merges would reduce the network modularity.
Partitional clustering is another common approach. Partitioning clustering decomposes the network and performs an iterative relocation of nodes between clusters. For example, KernighanLin bipartitioning (Kernighan and Lin, 1970) starts with an arbitrary partition in two clusters. Then, iteratively exchanges nodes between both clusters to minimize the number of links between them. This approach can be applied multiple times to subdivide the obtained clusters. Kmeans community detection (MacQueen et al., 1967) is an application of the traditional kmeans clustering algorithm to networks and another prominent example of partitioning community detection.
Spectral community detection (Fortunato, 2010) is another family of community detection techniques included in NOESIS. These techniques use the Laplacian representation of the network, which is a network representation computed by subtracting the adjacency matrix of the network to a diagonal matrix where each diagonal element is equal to the degree of the corresponding node. Then, the eigenvectors of the Laplacian representation of the network are computed. NOESIS includes the ratio cut algorithm (EIG1) (Hagen and Kahng, 1992), the Jordan and Weiss NG algorithm (KNSC1) (Ng et al., 2002), and spectral kmeans (Shi and Malik, 2000).
Finally, the BigClam overlapping community detector is also available in NOESIS (Yang and Leskovec, 2013). In this algorithm, each node has a profile, which consists in a score between and for each cluster that is proportional to the likelihood of the node belonging to that cluster. Also, a score between pairs of nodes is defined yielding values proportional to their clustering assignment overlap. The algorithm iteratively optimizes each node profile to maximize the value between connected nodes and minimize the value among unconnected nodes.
In the following example, we show how to load a network from a data file and detect communities with the KNSC1 algorithm using NOESIS:
FileReader fileReader = new FileReader("mynetwork.net"); NetworkReader reader = new PajekNetworkReader(fileReader); Network network = reader.read(); CommunityDetector task = new NJWCommunityDetector(network); Matrix results = task.call();
iv.2 Link scoring and prediction
Link scoring and link prediction are two closely related tasks. On the one hand, link scoring aims to compute a value or weight for a link according to a specific criteria. Most link scoring techniques obtain this value by considering the overlap or relationship between the neighborhood of the nodes at both ends of the link. On the other hand, link prediction computes a value, weight, or probability proportional to the likelihood of the existence of a certain link according to a given model of link formation.
The NOESIS framework provides a large collection of methods for link scoring and link prediction, from local methods, which only consider the direct neighborhood of nodes, to global methods, which consider the whole network topology. As the amount of information considered is increased, the computational and spatial complexity of the techniques also increases. The link scoring and prediction methods available in NOESIS are shown in Table 2.
Type  Name  Time complexity  Reference 

Local  Common Neighbors count  (Newman, 2001)  
Adamic–Adar score  (Adamic and Adar, 2003)  
Resource–allocation index  (Zhou et al., 2009)  
Adaptive degree penalization score  (Martínez et al., 2016)  
Jaccard score  (Jaccard, 1901)  
LeichtHolmeNewman score  (Leicht et al., 2006)  
Salton score  (Salton and McGill, 1986)  
Sorensen score  (Sørensen, 1948)  
Hub promoted index  (Ravasz et al., 2002)  
hub depressed index  (Ravasz et al., 2002)  
Preferential attachment score  (Barabási and Albert, 1999)  
Global  Katz index  (Katz, 1953)  
LeichtHolmeNewman score  (Leicht et al., 2006)  
Random walk  (Pearson, 1905)  
Random walk with restart  (Tong et al., 2006)  
Flow propagation  (Vanunu and Sharan, 2008)  
Pseudoinverse Laplacian score  (Fouss et al., 2007)  
Average commute time score  (Fouss et al., 2007)  
Random forest kernel index  (Chebotarev and Shamis, 2006) 
Computational time complexity and bibliographic references for the link scoring and prediction methods provided by NOESIS. In the time complexity analysis, is the number of nodes in the network, is the maximum node degree, and refers to the number of iterations required by iterative global link prediction methods.
Among local methods, the most basic technique is the common neighbors score (Newman, 2001), which is equal to the number of shared neighbors between a pair of nodes. Most techniques are variations of the common neighbors score. For example, the Adamic–Adar score (Adamic and Adar, 2003) is the sum of one divided by the logarithm of the degree of each shared node. The resource–allocation index (Zhou et al., 2009) follows the same expression, but directly considers the degree instead of the logarithm of the degree. The adaptive degree penalization score (Martínez et al., 2016) also follows the same approach, yet automatically determines an adequate degree penalization by considering properties of the network topology. Other local measures consider the number of shared neighbors, but normalize their value according to certain criteria. For example, the Jaccard score (Jaccard, 1901) normalizes the number of shared neighbors by the total number of neighbors. The local LeichtHolmeNewman score (Leicht et al., 2006) normalizes the count of shared neighbors by the product of both neighborhoods sizes. Similarly, the Salton score (Salton and McGill, 1986) also normalizes, this time using the square root of the product of both node degrees. The Sorensen score (Sørensen, 1948) considers the double of the count of shared neighbors normalized by the sum of both neighbors size. The hub promoted and hub depressed scores (Ravasz et al., 2002) normalize the count of shared neighbors by the minimum and the maximum of both nodes degree respectively. Finally, the preferential attachment score (Barabási and Albert, 1999) only considers the product of both node degrees.
Global link scoring and prediction methods are more complex than local methods. For example, the Katz score (Katz, 1953) sums the influence of all possible paths between two nodes, incrementally penalizing paths by their length according to a given damping factor. The global LeichtHolmeNewman score (Leicht et al., 2006)
is quite similar to the Katz score, but resorts to the dominant eigenvalue to compute the final result.
Random walk techniques simulate a Markov chain of randomlyselected nodes
(Pearson, 1905). The idea is that, starting from a seed node and randomly moving through links, we can obtain a probability vector where each element corresponds to the probability of reaching each node. The classical random walk iteratively multiplies the probability vector by the transition matrix, which is the rownormalized version of the adjacency matrix, until convergence. An interesting variant is the random walk with restart (Tong et al., 2006), which models the possibility of returning to the seed node with a given probability. Flow propagation is another variant of random walk (Vanunu and Sharan, 2008), where the transition matrix is computed by performing both row and column normalization of the adjacency matrix.Finally, some spectral techniques are also available in NOESIS. Spectral techniques, as we mentioned when discussing community detection methods, are based on the Laplacian matrix. The pseudoinverse Laplacian score (Fouss et al., 2007) is the inner product of the rows of the corresponding pair of nodes from the Laplacian matrix. Other spectral technique is the average commute time (Fouss et al., 2007), which is defined as the average number of steps that a random walker starting from a particular node takes to reach another node for the first time and go back to the initial node. Despite it models a random walk process, it is considered to be a spectral technique because it is usually computed in terms of the Laplacian matrix. Given the Laplacian matrix, it can be computed as the diagonal element of the starting node plus the diagonal element of the ending node, minus two times the element located in the row of the first node and the column of the second one.
Finally, the random forest kernel score (Chebotarev and Shamis, 2006)
is a global technique based on the concept of spanning tree, i.e. a connected undirected subnetwork with no cycles that includes all the nodes and some or all the links of the network. The matrixtree theorem states that the number of spanning trees in the network is equal to any cofactor, which is a determinant obtained by removing the row and column of the given node, of an entry of its Laplacian representation. As a result of this, the inverse of the sum of the identity matrix and the Laplacian matrix gives us a matrix that can be interpreted as a measure of accessibility between pairs of nodes.
Using network data mining algorithms in NOESIS is simple. In the following code snippet, we show how to generate a Barabási–Albert preferential attachment network with nodes and links, and then compute the Resource Allocation score for each pair of nodes using NOESIS:
Network network = new BarabasiAlbertNetwork(100, 1000); LinkPredictionScore method = new ResourceAllocationScore(network); Matrix result = method.call();
V Conclusion
Currently, the NOESIS project comprises more than thirty five thousand lines of code organized in hundreds of classes and dozens of packages. NOESIS relies on a library of reusable components that, with more than forty thousand lines of Java code, provide a customizable collection framework, support for the execution of parallel algorithms, mathematical routines, and the modeldriven application generator used to build the NOESIS graphical user interface.
NOESIS can ease the development of applications that involve the analysis of any kind of data susceptible of being represented as a network. NOESIS provides an efficient, scalable, and developer–friendly framework for network data mining, released under a permissive Berkeley Software Distribution free software license. Our framework can be downloaded from its official website at http://noesis.ikor.org.
Acknowledgements.
The NOESIS project is partially supported by the Spanish Ministry of Economy and the European Regional Development Fund (FEDER), under grant TIN2012–36951, and the Spanish Ministry of Education under the program “Ayudas para contratos predoctorales para la formación de doctores 2013” (grant BES–2013–064699). We are grateful to Aarón Rosas, Francisco–Javier Gijón, and Julio–Omar Palacio for their contributions to the implementation of community detection methods in NOESIS.References
 Adamic and Adar (2003) Adamic, L. A. and Adar, E. (2003). Friends and neighbors on the web. Social Networks, 25(3):211–230.
 Albert and Barabási (2002) Albert, R. and Barabási, A.L. (2002). Statistical mechanics of complex networks. Reviews of Modern Physics, 74(1):47.
 Barabási and Albert (1999) Barabási, A.L. and Albert, R. (1999). Emergence of scaling in random networks. Science, 286(5439):509–512.
 Bastian et al. (2009) Bastian, M., Heymann, S., Jacomy, M., et al. (2009). Gephi: an open source software for exploring and manipulating networks. International AAAI Conference on Weblogs and Social Media, 8:361–362.
 Batagelj and Mrvar (1998) Batagelj, V. and Mrvar, A. (1998). Pajekprogram for large network analysis. Connections, 21(2):47–57.
 Bavelas (1950) Bavelas, A. (1950). Communication patterns in task‐oriented groups. The Journal of the Acoustical Society of America, 22(6):725–730.
 Borgatti et al. (2002) Borgatti, S. P., Everett, M. G., and Freeman, L. C. (2002). UCINET for Windows: Software for social network analysis. Technical report, Analytic Technologies.
 Chebotarev and Shamis (2006) Chebotarev, P. and Shamis, E. (2006). Matrixforest theorems. arXiv preprint math/0602575.
 Csardi and Nepusz (2006) Csardi, G. and Nepusz, T. (2006). The igraph software package for complex network research. International Journal of Complex Systems, 1695(5):1–9.
 Dean and Ghemawat (2008) Dean, J. and Ghemawat, S. (2008). MapReduce: simplified data processing on large clusters. Communications of the ACM, 51(1):107–113.
 Defays (1977) Defays, D. (1977). An efficient algorithm for a complete link method. The Computer Journal, 20(4):364–366.
 Ellson et al. (2002) Ellson, J., Gansner, E., Koutsofios, L., North, S. C., and Woodhull, G. (2002). Graphviz  open source graph drawing tools. In Graph Drawing, pages 483–484. Springer.
 Erdős and Rényi (1959) Erdős, P. and Rényi, A. (1959). On random graphs. Publicationes Mathematicae Debrecen, 6:290–297.
 Fortunato (2010) Fortunato, S. (2010). Community detection in graphs. Physics Reports, 486(3):75–174.
 Fouss et al. (2007) Fouss, F., Pirotte, A., Renders, J.M., and Saerens, M. (2007). Randomwalk computation of similarities between nodes of a graph with application to collaborative recommendation. IEEE Transactions on Knowledge and Data Engineering, 19(3):355–369.
 Freeman (1977) Freeman, L. C. (1977). A set of measures of centrality based on betweenness. Sociometry, pages 35–41.
 Fruchterman and Reingold (1991) Fruchterman, T. M. and Reingold, E. M. (1991). Graph drawing by forcedirected placement. Software: Practice and Experience, 21(11):1129–1164.
 Getoor and Diehl (2005) Getoor, L. and Diehl, C. P. (2005). Link mining: a survey. ACM SIGKDD Explorations Newsletter, 7(2):3–12.
 Gilbert (1959) Gilbert, E. N. (1959). Random graphs. The Annals of Mathematical Statistics, 30(4):1141–1144.
 Hage and Harary (1995) Hage, P. and Harary, F. (1995). Eccentricity and centrality in networks. Social Networks, 17(1):57–63.
 Hagen and Kahng (1992) Hagen, L. and Kahng, A. B. (1992). New spectral methods for ratio cut partitioning and clustering. IEEE Transactions on ComputerAided Design of Integrated Circuits and Systems, 11(9):1074–1085.
 Jaccard (1901) Jaccard, P. (1901). Étude comparative de la distribution florale dans une portion des alpes et des jura. Bulletin de la Société Vaudoise des Sciences Naturelles, 37:547–579.
 Jackson (2008) Jackson, M. O. (2008). Social and Economic Networks. Princeton University Press, Princeton, NJ, USA.
 Kamada and Kawai (1989) Kamada, T. and Kawai, S. (1989). An algorithm for drawing general undirected graphs. Information Processing Letters, 31(1):7–15.
 Kang et al. (2012) Kang, C., Molinaro, C., Kraus, S., Shavitt, Y., and Subrahmanian, V. (2012). Diffusion centrality in social networks. In Proceedings of the 2012 International Conference on Advances in Social Networks Analysis and Mining (ASONAM 2012), pages 558–564. IEEE Computer Society.
 Katz (1953) Katz, L. (1953). A new status index derived from sociometric analysis. Psychometrika, 18(1):39–43.
 Keeling and Eames (2005) Keeling, M. J. and Eames, K. T. (2005). Networks and epidemic models. Journal of the Royal Society Interface, 2(4):295–307.

Kernighan and Lin (1970)
Kernighan, B. W. and Lin, S. (1970).
An efficient heuristic procedure for partitioning graphs.
Bell System Technical Journal, 49(2):291–307.  Kleinberg (1999) Kleinberg, J. M. (1999). Authoritative sources in a hyperlinked environment. Journal of the ACM (JACM), 46(5):604–632.
 Knuth (2009) Knuth, D. E. (2009). The Stanford GraphBase: A Platform for Combinatorial Computing. AddisonWesley Professional, 1st edition.
 Lancichinetti and Fortunato (2009) Lancichinetti, A. and Fortunato, S. (2009). Community detection algorithms: a comparative analysis. Physical Review E, 80(5):056117.
 Leicht et al. (2006) Leicht, E. A., Holme, P., and Newman, M. E. (2006). Vertex similarity in networks. Physical Review E, 73(2):026120.
 Leskovec and Krevl (2014) Leskovec, J. and Krevl, A. (2014). SNAP Datasets: Stanford large network dataset collection. http://snap.stanford.edu/data.
 LibenNowell and Kleinberg (2007) LibenNowell, D. and Kleinberg, J. (2007). The linkprediction problem for social networks. Journal of the American Society for Information Science and Technology, 58(7):1019–1031.
 Liu (2011) Liu, B. (2011). Web Data Mining, 2 ed. Berlin, Germany: Springer Berlin Heidelberg.
 Lü and Zhou (2011) Lü, L. and Zhou, T. (2011). Link prediction in complex networks: A survey. Physica A: Statistical Mechanics and its Applications, 390(6):1150–1170.
 Lusseau et al. (2003) Lusseau, D., Schneider, K., Boisseau, O. J., Haase, P., Slooten, E., and Dawson, S. M. (2003). The bottlenose dolphin community of doubtful sound features a large proportion of longlasting associations. Behavioral Ecology and Sociobiology, 54(4):396–405.
 MacQueen et al. (1967) MacQueen, J. et al. (1967). Some methods for classification and analysis of multivariate observations. In Proceedings of the Fifth Berkeley Symposium on Mathematical Statistics and Probability, number 14 in 1, pages 281–297. Oakland, CA, USA.
 Martínez et al. (2016) Martínez, V., Berzal, F., and Cubero, J.C. (2016). Adaptive degree penalization for link prediction. Journal of Computational Science, 13:1–9.
 Martínez et al. (2014) Martínez, V., Cano, C., and Blanco, A. (2014). Prophnet: A generic prioritization method through propagation of information. BMC Bioinformatics, 15(Suppl 1):S5.
 Newman (2010) Newman, M. (2010). Networks: An Introduction. Oxford University Press.
 Newman (2001) Newman, M. E. (2001). Clustering and preferential attachment in growing networks. Physical Review E, 64(2):025102.
 Newman (2003) Newman, M. E. (2003). The structure and function of complex networks. Society for Industrial and Applied Mathematics Review, 45(2):167–256.
 Newman (2004) Newman, M. E. (2004). Fast algorithm for detecting community structure in networks. Physical Review E, 69(6):066133.
 Newman and Girvan (2004) Newman, M. E. and Girvan, M. (2004). Finding and evaluating community structure in networks. Physical Review E, 69(2):026113.

Ng et al. (2002)
Ng, A. Y., Jordan, M. I., Weiss, Y., et al. (2002).
On spectral clustering: Analysis and an algorithm.
Advances in Neural Information Processing Systems, 2:849–856.  Page et al. (1999) Page, L., Brin, S., Motwani, R., and Winograd, T. (1999). The pagerank citation ranking: Bringing order to the web. Technical report, Stanford InfoLab.
 Pavlov and Ichise (2007) Pavlov, M. and Ichise, R. (2007). Finding experts by link prediction in coauthorship networks. Finding Experts on the Web with Semantics Workshop, 290:42–55.
 Pearson (1905) Pearson, K. (1905). The problem of the random walk. Nature, 72:342.
 Piraveenan et al. (2008) Piraveenan, M., Prokopenko, M., and Zomaya, A. (2008). Local assortativeness in scalefree networks. Europhysics Letters, 84(2):28002.
 Piraveenan et al. (2010) Piraveenan, M., Prokopenko, M., and Zomaya, A. Y. (2010). Classifying complex networks using unbiased local assortativity. In ALIFE, pages 329–336.
 Ravasz et al. (2002) Ravasz, E., Somera, A. L., Mongru, D. A., Oltvai, Z. N., and Barabási, A.L. (2002). Hierarchical organization of modularity in metabolic networks. Science, 297(5586):1551–1555.
 Salton and McGill (1986) Salton, G. and McGill, M. J. (1986). Introduction to Modern Information Retrieval. McGrawHill, Inc.
 Schuetz and Caflisch (2008) Schuetz, P. and Caflisch, A. (2008). Efficient modularity optimization by multistep greedy algorithm and vertex mover refinement. Physical Review E, 77(4):046112.
 Schult and Swart (2008) Schult, D. A. and Swart, P. (2008). Exploring network structure, dynamics, and function using NetworkX. In Proceedings of the 7th Python in Science Conferences (SciPy 2008), volume 2008, pages 11–16.
 Shannon et al. (2003) Shannon, P., Markiel, A., Ozier, O., Baliga, N. S., Wang, J. T., Ramage, D., Amin, N., Schwikowski, B., and Ideker, T. (2003). Cytoscape: a software environment for integrated models of biomolecular interaction networks. Genome Research, 13(11):2498–2504.
 Shi and Malik (2000) Shi, J. and Malik, J. (2000). Normalized cuts and image segmentation. Transactions on Pattern Analysis and Machine Intelligence, 22(8):888–905.
 Sibson (1973) Sibson, R. (1973). Slink: an optimally efficient algorithm for the singlelink cluster method. The Computer Journal, 16(1):30–34.
 Smith et al. (2009) Smith, M. A., Shneiderman, B., MilicFrayling, N., Mendes Rodrigues, E., Barash, V., Dunne, C., Capone, T., Perer, A., and Gleave, E. (2009). Analyzing (social media) networks with NodeXL. In Proceedings of the Fourth International Conference on Communities and Technologies, pages 255–264. ACM.
 Sørensen (1948) Sørensen, T. (1948). A method of establishing groups of equal amplitude in plant sociology based on similarity of species and its application to analyses of the vegetation on danish commons. Biologiske Skrifter, 5:1–34.
 Tamassia (2013) Tamassia, R. (2013). Handbook of Graph Drawing and Visualization. CRC Press.
 Tan et al. (2006) Tan, P.N., Steinbach, M., Kumar, V., et al. (2006). Introduction to data mining. Pearson, Addison Wesley, Boston.
 Tong et al. (2006) Tong, H., Faloutsos, C., and Pan, J.Y. (2006). Fast random walk with restart and its applications. In Proceedings of the Sixth International Conference on Data Mining, ICDM ’06, pages 613–622. IEEE Computer Society.
 Vanunu and Sharan (2008) Vanunu, O. and Sharan, R. (2008). A propagationbased algorithm for inferring genedisease assocations. In German Conference on Bioinformatics, pages 54–52.
 Watts and Strogatz (1998) Watts, D. J. and Strogatz, S. H. (1998). Collective dynamics of ‘smallworld’ networks. Nature, 393(6684):440–442.
 Wills (1999) Wills, G. J. (1999). Nicheworks—interactive visualization of very large graphs. Journal of Computational and Graphical Statistics, 8(2):190–212.
 Yang and Leskovec (2013) Yang, J. and Leskovec, J. (2013). Overlapping community detection at scale: a nonnegative matrix factorization approach. In Proceedings of the Sixth ACM International Conference on Web Search and Data Mining, pages 587–596. ACM.
 Zachary (1977) Zachary, W. W. (1977). An information flow model for conflict and fission in small groups. Journal of Anthropological Research, pages 452–473.
 Zhou et al. (2009) Zhou, T., Lü, L., and Zhang, Y.C. (2009). Predicting missing links via local information. The European Physical Journal B, 71(4):623–630.