Edge Cases - RobinBalzer/approximateQueries GitHub Wiki

There are currently six different cases of an edge that's suitable for the productAutomaton.

  1. incoming epsilon edge
  2. outgoing epsilon edge
  3. approximated edge
  4. negated incoming epsilon edge
  5. negated outgoing epsilon edge
  6. negated approximated edge

In the following table you can find a breakdown of the cases.

Query behaviour Transducer behaviour Database behaviour
Case 1 pause move move
Case 2 move move pause
Case 3 move move move
Case 4 pause move move backwards
Case 5 move move pause
Case 6 move move move backwards

Actions move, pause and move backwards are described in the following table:

starting point labeling target point
move sourceNode (label) targetNode
pause sourceNode (label) targetNode
move backwards targetNode -(label) sourceNode

Note that case 2 and 5 behave the same, yet they are implemented twice with duplicate code. This might get changed in the future but currently I keep both cases separately to prevent confusion.