Track 2 – Full Diagrams
The goal of this track is recognition and interpretation of discrete finite state machines. Each sketch will consist of a valid state machine. In addition to recognizing the components and labels of the FSM, a correct interpretation of the FSM must be created, and run on a set provided input strings. Sample data is provided below. Test data will be collected at the workshop.Components
Start State – a triangle, one per diagram
States – circles, zero or more per diagram
Accept State – two co-centric shapes (triangle for start, circle for other)
Transitions – Arrow between two states, mono-directional
Transition Label – The capital letters A, B, and C. Additionally non-labelled transitions are a “catch-all” that captures an unused labels.
Input
Two XML files will be provided for each sketch, the sketch itself and the FSM inputs. Sketch input will provided in XML format as specified in SML. The root tag of the FSM input XML will be <inputs>. The <inputs> tag contains one or more <input> sub-elements with an attribute “string” which represents an input string for the FSM.
Output
Output will be formatted as an XML file (one per sketch) composed of the following elements:
<result>
Sub-elements:
<symbols> - exactly 1
<outputs> - exactly 1
<symbols>
Sub-elements
<group> - one per recognized symbol
<outputs>
Sub-elements
<output> - one per <input> from the input XML
<group>
Attributes
label – The label of the grouping, one of {“StartState” “FinalStartState” “State” “Final State” “Arrow” “A” “B” “C”}
Sub-elements
<stroke> - one for each stroke in the symbol
<output>
Attributes
type - “Accept” or “Reject”
<stroke>
Attributes
id – The UUID of the stroke (given in the input XML)