Hypergraphs typically occur in applications
such as electrical signal diagrams, multiflow visualization,
network management, and UML diagrams.
Hypergraphs are implemented with the class IlvHyperGrapher. Hypergraphs are based on
graphers and extend them with the concept of hyperedges. Hyperedges
are links that have multiple sources and multiple sinks.
A hypergraph is an instance of the class IlvHyperGrapher, a subclass of IlvGrapher (and of IlvManager). While a normal graph can only
contain nodes and links, a hypergraph can contain three types of
object:
- Nodes, as in an
IlvGrapher
. - Links, as in an
IlvGrapher
, that connect a source node to a target node - Hyperedges, which connect multiple nodes and cannot exist in an
IlvGrapher
.
The following diagram shows the associations
between the classes relevant to hypergraphs.
![dia_hypergraph1.png](../usrhyperdiag/_media/dia_hypergraph1_default.png)
Classes for hypergraphs
A normal link has exactly two end nodes: a
source and a target. Sometimes the source node is called the origin
and the target is called the destination. If the link is
directional, an arrowhead is drawn at the target node to indicate
the direction of the link. A normal graph has nodes and normal
links.
A hyperedge is similar to a link, but can have
multiple source nodes and multiple target nodes; that is, 0, 1, 2,
3, ... nodes. A hyperedge with 0 source nodes and 0 target nodes is
feasible, even though it may not make sense in many applications.
There is no restriction in JViews
Diagrammer on how many source or target nodes may exist.
A hypergraph is a graph that can contain
hyperedges.
![hyperlink.gif](../usrhyperdiag/_media/hyperlink_default.gif)
Several nodes connected by one hyperedge
In JViews Diagrammer,
graphs, nodes, links, hypergraphs , and hyperedges are implemented
by the classes listed in the following table.
Classes for graphs and hypergraphs
Class
Name |
Description
|
---|---|
The base
class of every drawable object, that is, for nodes, links,
graphs, hyperedges, and so on. These objects are referred to as
graphic objects. Every graphic object other than a link or a
hyperedge is always treated as a node. |
|
A normal
graph with normal nodes and links. |
|
IlvLinkImage and its subclasses
|
A normal
link. |
A hypergraph that can contain nodes, links, and hyperedges. It
is a subclass of
IlvGrapher
. Therefore, it can also contain normal links. An
IlvHyperGrapher
object is derived from
IlvGrapher
and from IlvManager, so it may sometimes be
referred to as a grapher or a manager, depending on the context
(functionality typical of
IlvGrapher
or
IlvManager
). When the functionality under discussion is outside these
contexts, the object is called a hypergraph.
|
|
A hyperedge. This class is a subclass of
IlvGraphic
and not of
IlvLinkImage
. Therefore, hyperedges are incompatible with normal links.
Even so, the end nodes of hyperedges are normal nodes
(instances of
IlvGraphic
).
|
|
A special subclass of
IlvHyperEdge
. Therefore, this is also a hyperedge.
|
The following diagram shows an example of a
hypergraph with many hyperedges used in an electrical signal
diagram. The hyperedges are shown in red.
![diahyp_elecsignal.gif](../usrhyperdiag/_media/diahyp_elecsignal_default.gif)
An electrical signal diagram with
hyperedges