|
Data.Graph.Analysis.Types | Maintainer | Ivan.Miljenovic@gmail.com |
|
|
|
|
|
Description |
This module defines the various types and classes utilised
by the Graphalyze library.
|
|
Synopsis |
|
data GraphData n e = GraphData {} | | type AGr n e = Gr n e | | type Rel n e = (n, n, e) | | type NGroup = [Node] | | type LNGroup a = [LNode a] | | wantedRoots :: GraphData n e -> LNGroup n | | applyAlg :: (AGr n e -> a) -> GraphData n e -> a | | applyDirAlg :: (Bool -> AGr n e -> a) -> GraphData n e -> a | | mergeUnused :: (Ord n, Ord e) => GraphData n e -> GraphData n e | | removeUnused :: GraphData n e -> GraphData n e | | updateGraph :: (AGr a b -> AGr c d) -> GraphData a b -> GraphData c d | | updateGraph' :: (Bool -> AGr a b -> AGr c d) -> GraphData a b -> GraphData c d | | mapAllNodes :: (Ord a, Ord e, Ord b) => (a -> b) -> GraphData a e -> GraphData b e | | mapNodeType :: (Ord a, Ord b, Ord e) => (a -> b) -> (a -> b) -> GraphData a e -> GraphData b e | | class ClusterType (Cluster cl) => ClusterLabel cl where | | | class Ord c => ClusterType c where | | | GraphID (Str, Int, Dbl, HTML) | | data GenCluster a = GC {} | | data PosLabel a = PLabel {} |
|
|
|
Graph specialization.
|
|
|
Represents information about the graph being analysed.
| Constructors | GraphData | | graph :: AGr n e | We use a graph type with no edge labels.
| wantedRootNodes :: NGroup | The expected root nodes in the graph.
| directedData :: Bool | Is the data this graph represents
directed in nature?
| unusedRelationships :: [Rel n e] | Unused relationships (i.e. not in
the actual graph). These are the
edges containing nodes not in the
graph.
|
|
|
|
|
|
An alias for the type of graph being used by default.
|
|
type Rel n e = (n, n, e) | Source |
|
A relationship between two nodes with a label.
|
|
|
A grouping of Nodes.
|
|
|
A grouping of LNodes.
|
|
Functions on GraphData.
|
|
|
The expected roots in the data to be analysed.
|
|
|
Apply an algorithm to the data to be analysed.
|
|
|
Apply an algorithm that requires knowledge about whether the
graph is directed (True) or undirected (False) to the data to
be analysed.
|
|
|
Merge the unusedRelationships into the graph by adding the
appropriate nodes.
|
|
|
Used to set unusedRelationships = []. This is of use when
they are unneeded or because there is no sensible mapping
function to use when applying a mapping function to the nodes in
the graph.
|
|
|
Replace the current graph by applying a function to it. To
ensure type safety, removeUnused is applied.
|
|
|
Replace the current graph by applying a function to it, where the
function depends on whether the graph is directed (True) or
undirected (False). To ensure type safety, removeUnused is
applied.
|
|
|
Apply a function to all the data points.
This might be useful in circumstances where you want to reduce
the data type used to a simpler one, etc. The function is also
applied to the datums in unusedRelationships.
|
|
|
Apply the first function to nodes in the graph, and the second
function to those unknown datums in unusedRelationships.
As a sample reason for this function, it can be used to apply a
two-part constructor (e.g. Left and Right from Either) to
the nodes such that the wanted and unwanted datums can be
differentiated before calling mergeUnused.
|
|
Clustering graphs based on their node labels.
|
|
|
These types and classes represent useful label types.
The class of outputs of a clustering algorithm. This class is
mainly used for visualization purposes, with the Ord instance
required for grouping. Instances of this class are intended for
use as the label type of graphs.
| | Associated Types | | | Methods | | The cluster the node label belongs in.
| | | The actual label.
|
| | Instances | |
|
|
|
A class used to define which types are valid for clusters.
| | Methods | | Create a label for visualisation purposes with the GraphViz
library. Default is const Nothing.
|
| | Instances | |
|
|
GraphID (Str, Int, Dbl, HTML) |
|
Graph label types.
|
|
|
A generic cluster-label type.
| Constructors | | Instances | |
|
|
|
Label type for storing node positions. Note that this isn't an
instance of ClusterLabel since there's no clear indication on
which cluster a node belongs to at this stage.
| Constructors | | Instances | |
|
|
Produced by Haddock version 2.4.2 |