Class PetriNetFragmentParser


  • public class PetriNetFragmentParser
    extends java.lang.Object
    Allows the creation of Petri nets with short one line ascii sketches, for example initialPlace -> [transition1] -> mp -> [transition2] -> finalPlace Larger nets can be created with multiple invocations. Existing nodes will be looked up by label. Weighted transitions without weights, as in {b}, are defaulted to weight 1.0. Current limitations: no support for SPNs beyond weighted transitions. No support for separate nodes with duplicate labels. Methods for creating AcceptingPetriNets are also provided. These use naming conventions to identify initial and final markings per createAcceptingNet(String, String). Grammar
     PETRI_ONELINE_NET      :: PLACE EDGE TRANSITION EDGE PLACE_LED_SUBNET
     PLACE_LED_SUBNET       :: PLACE EDGE TRANSITION EDGE PLACE_LED_SUBNET
     PLACE_LED_SUBNET       :: PLACE 
     TRANSITION_SUBNET      :: TRANSITION EDGE PLACE EDGE TRANSITION_SUBNET
     TRANSITION_SUBNET      :: TRANSITION 
     TRANSITION             :: SIMPLE_TRANSITION || WEIGHTED_TRANSITION
     SIMPLE_TRANSITION      :: '[' LABEL ']'
     WEIGHTED_TRANSITION  :: WEIGHTED_TRAN_VALUE | WEIGHTED_TRAN_DEFAULT
     WEIGHTED_TRAN_VALUE  :: '{' LABEL WEIGHT '}'
     WEIGHTED_TRAN_DEFAULT:: '{' LABEL '}'
     WEIGHT                         :: [0-9].[0-9]*
     PLACE                  :: LABEL
     EDGE                   :: '->' 
     LABEL                  :: alphanumeric string
     
    Doesn't work for extended codepoints (eg UTF-16).
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addToAcceptingNet​(org.processmining.acceptingpetrinet.models.AcceptingPetriNet anet, java.lang.String netText)
      Precondition: the underlying Petrinet in anet is a StochasticNet.
      void addToNet​(org.processmining.models.graphbased.directed.petrinet.StochasticNet net, java.lang.String netText)  
      org.processmining.acceptingpetrinet.models.AcceptingPetriNet createAcceptingNet​(java.lang.String label, java.lang.String netText)
      Returns an AcceptingPetriNet with one initial and one final place marked.
      org.processmining.acceptingpetrinet.models.AcceptingPetriNet createAcceptingNetArgs​(java.lang.String label, java.lang.String... specs)  
      org.processmining.models.graphbased.directed.petrinet.StochasticNet createNet​(java.lang.String label, java.lang.String netText)  
      org.processmining.models.graphbased.directed.petrinet.StochasticNet createNetArgs​(java.lang.String label, java.lang.String... specs)  
      org.processmining.acceptingpetrinet.models.AcceptingPetriNet markInitialFinalPlaces​(org.processmining.models.graphbased.directed.petrinet.StochasticNet net)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • INITIAL_PLACE_LABELS

        public static final java.util.Set<java.lang.String> INITIAL_PLACE_LABELS
      • FINAL_PLACE_LABELS

        public static final java.util.Set<java.lang.String> FINAL_PLACE_LABELS
    • Constructor Detail

      • PetriNetFragmentParser

        public PetriNetFragmentParser()
    • Method Detail

      • addToNet

        public void addToNet​(org.processmining.models.graphbased.directed.petrinet.StochasticNet net,
                             java.lang.String netText)
      • createNet

        public org.processmining.models.graphbased.directed.petrinet.StochasticNet createNet​(java.lang.String label,
                                                                                             java.lang.String netText)
      • createAcceptingNet

        public org.processmining.acceptingpetrinet.models.AcceptingPetriNet createAcceptingNet​(java.lang.String label,
                                                                                               java.lang.String netText)
        Returns an AcceptingPetriNet with one initial and one final place marked. Initial and final markings are determined by labeling convention but will only be applied where places have the correct edge properties, ie, only outgoing for initial places, only incoming for final. Naming conventions for initial places, in order of checking: Start, Initial, I. Naming conventions for final places, in order of checking: End, Final, F.
        Parameters:
        label -
        netText -
        Returns:
      • markInitialFinalPlaces

        public org.processmining.acceptingpetrinet.models.AcceptingPetriNet markInitialFinalPlaces​(org.processmining.models.graphbased.directed.petrinet.StochasticNet net)
      • createAcceptingNetArgs

        public org.processmining.acceptingpetrinet.models.AcceptingPetriNet createAcceptingNetArgs​(java.lang.String label,
                                                                                                   java.lang.String... specs)
      • addToAcceptingNet

        public void addToAcceptingNet​(org.processmining.acceptingpetrinet.models.AcceptingPetriNet anet,
                                      java.lang.String netText)
        Precondition: the underlying Petrinet in anet is a StochasticNet.
        Parameters:
        anet -
        netText -
      • createNetArgs

        public org.processmining.models.graphbased.directed.petrinet.StochasticNet createNetArgs​(java.lang.String label,
                                                                                                 java.lang.String... specs)