Module xl.impl

Class Graph

java.lang.Object
de.grogra.xl.impl.base.Graph
All Implemented Interfaces:
Graph, Cloneable
Direct Known Subclasses:
GraphImpl, RGGGraph

public abstract class Graph extends Object implements Graph, Cloneable
This class is an abstract base class for implementations of XL's runtime model for graph-like structures. Graph represents a single graph on which XL's query statements may operate.

The package documentation contains more information about the structure of the graph that is implied by this base class.

The current derivation mode for rule applications acting on this graph is set by setDerivationMode(int) and may be truly parallel (PARALLEL_MODE), parallel and non-deterministic (PARALLEL_NON_DETERMINISTIC_MODE, one application is chosen out of several applications which delete the same node), sequential (SEQUENTIAL_MODE, only the first rule application per derivation step is used), or sequential and non-deterministic (SEQUENTIAL_NON_DETERMINISTIC_MODE, only one rule application per derivation step is used).

Author:
Ole Kniemeyer
  • Field Details

    • PARALLEL_MODE

      public static final int PARALLEL_MODE
      Bit mask for getDerivationMode() indicating a true parallel derivation mode. All rules are applied via every possible match in parallel. A single node may be deleted by several rule applications.
      See Also:
    • PARALLEL_NON_DETERMINISTIC_MODE

      public static final int PARALLEL_NON_DETERMINISTIC_MODE
      Bit mask for getDerivationMode() indicating a parallel non-deterministic derivation mode. It is ensured that a single node is deleted by at most one actual rule application. If several potential rule applications delete the same node, one actual application is chosen pseudo-randomly.
      See Also:
    • SEQUENTIAL_MODE

      public static final int SEQUENTIAL_MODE
      Bit mask for getDerivationMode() indicating a sequential derivation mode. Only one rule application is performed in a single step (as marked by derive()). If several applications are possible, only the first one is chosen.
      See Also:
    • SEQUENTIAL_NON_DETERMINISTIC_MODE

      public static final int SEQUENTIAL_NON_DETERMINISTIC_MODE
      Bit mask for getDerivationMode() indicating a sequential derivation mode. Only one rule application is performed in a single step (as marked by derive()). If several applications are possible, one is chosen pseudo-randomly.
      See Also:
    • MODE_MASK

      public static final int MODE_MASK
      See Also:
    • INTERPRETIVE_FLAG

      public static final int INTERPRETIVE_FLAG
      Bit mask for getDerivationMode() which indicates that rules have to be applied as interpretive rules.
      See Also:
    • EXCLUDE_DELETED_FLAG

      public static final int EXCLUDE_DELETED_FLAG
      Bit mask for getDerivationMode() which indicates that nodes which were already deleted by previous rule applications of the current derivation step shall be excluded from further matches of the same step.
      See Also:
  • Constructor Details

  • Method Details