PrologPnet = DynamicDeclarations Netname Constants Metabolites Reactions Netname = model('MODELNAME'). Constants = Constant Constants | Constant Constant = IntConstant | DoubleConstant | ValueSet ValueSet = valueset('NAME' = ListOfValues). IntConstant = int('NAME' = ListOfValues ) . DoubleConstant = double('NAME' = ListOfValues ) . ListOfValues = [ ListOfValues1 ] ListOfValues1 = Val : ListOfValues1 | Val Val = INTEGER | DOUBLE Metabolites = MetaboliteHeading MetabolitesAndValues MetaboliteHeading = m(X):-m1(X=_). MetabolitesAndValues = Metabolite Metabolites | Metabolite Metabolite = m1('NAME'='VALUE'). Reactions = Reaction Reactions | Reaction Reaction = r('NAME',ListOfMetabolites, RateDeclaration ). ListOfMetabolites = [ ListOfMetabolites1 ] ListOfMetabolites1 = MetaboliteAndArc , ListOfMetabolites | MetaboliteAndArc MetaboliteAndArc = 'NAME' Sign Value Sign = + | - Value = INTEGER ++++ %ANDL file example spn [ma1] { constants: valuesets[Main:V_Set_1:V_Set_2:V_Set_3] marking: int n_A = [5:50:500:1000]; int n_B = [1:10:100:0]; int n_E = [1:10:100:1000]; parameter: double k1 = [100:1000:10000:100000]; double k2 = [4:40:400:4000]; double k3 = [1:10:100:1000]; double sf = [1:.1:.01:.001]; places: M_A = 100; M_AE = 0; M_B = n_B; M_E = 100; transitions: R_1 : : [M_AE + 1] & [M_A - 1] & [M_E - 1] : E*A*k1 ; R_2 : : [M_A + 1] & [M_E + 1] & [M_AE - 1] : AE*k2 ; R_3 : : [M_B + 1] & [M_E + 1] & [M_AE - 1] : AE*k3 ; } ++++ % Prolog file example :-dynamic(model/1). :-dynamic(modelname/1). :-dynamic(m1/1). :-dynamic(r/2). :-dynamic(int/1). model('ma1'). int('n_A'='[5:50:500:1000]'). int('n_B'='[1:10:100:0]'). int('n_E'='[1:10:100:1000]'). m(X):-m1(X=_). m1('M_A'='100'). m1('M_AE'='0'). m1('M_B'='n_B'). m1('M_E'='100'). r('R_1',['M_AE' + 1 , 'M_A' - 1 , 'M_E' - 1], 'E*A*k1'). r('R_2',['M_A' + 1 , 'M_E' + 1 , 'M_AE' - 1], 'AE*k2'). r('R_3',['M_B' + 1 , 'M_E' + 1 , 'M_AE' - 1], 'AE*k3').