Polyhierarchie
# Polyhierarchie

Polyhierarchie bezeichnet im Zusammenhang mit Begriffssystemen wie Ontologien und Thesauri (Begriffshierarchien) eine hierarchische Struktur, in der eine Klasse mehr als eine übergeordnete Klasse haben kann. Somit kann jeder Begriff mehreren Oberbegriffen zugeordnet werden, da verschiedene Merkmale bei der Zuordnung berücksichtigt werden. Streng genommen ist die Polyhierarchie also keine echte Hierarchie in Form eines Wurzelbaums, sondern ein gerichteter azyklischer Graph (englisch directed acyclic graph, DAG).

Je nach Definition kann eine Polyhierarchie auch als Menge von Bäumen aufgefasst werden, die Knoten gemeinsam haben können. In diesem Fall ist eine Polyhierarchie eine besondere Art eines Multigraph, weil zwei Knoten auch mehrfach miteinander verbunden sein können (in verschiedenen Bäumen).

Gelegentlich wird bei polyhierarchischen Strukturen noch zwischen Multibäumen und allgemeinen gerichteten azyklischen Graphen unterschieden. Ein Multibaum (englisch Multitree) ist ein gerichteter azyklischer Graph, in dem sich als Substrukturen mehrere Bäume identifizieren lassen. Im Allgemeinen bedeutet dies, dass keine Diamant-Strukturen (zwei Knoten mit gemeinsamen Eltern und Kindern) auftreten. Die Bezeichnung Multibaum wird allerdings uneinheitlich verwendet.

In der objektorientierten Programmierung tritt die Polyhierarchie in Form der Mehrfachvererbung auf. Dabei kann es mit dem Diamond-Problem zu ungewollten Mehrdeutigkeiten kommen.

