y_nelson 2.1.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,1037 +0,0 @@
1
- #LyX 2.0 created this file. For more info see http://www.lyx.org/
2
- \lyxformat 413
3
- \begin_document
4
- \begin_header
5
- \textclass article
6
- \use_default_options false
7
- \maintain_unincluded_children false
8
- \language english
9
- \language_package default
10
- \inputencoding auto
11
- \fontencoding global
12
- \font_roman default
13
- \font_sans default
14
- \font_typewriter default
15
- \font_default_family default
16
- \use_non_tex_fonts false
17
- \font_sc false
18
- \font_osf false
19
- \font_sf_scale 100
20
- \font_tt_scale 100
21
-
22
- \graphics default
23
- \default_output_format default
24
- \output_sync 0
25
- \bibtex_command default
26
- \index_command default
27
- \paperfontsize default
28
- \spacing single
29
- \use_hyperref false
30
- \papersize default
31
- \use_geometry true
32
- \use_amsmath 1
33
- \use_esint 1
34
- \use_mhchem 1
35
- \use_mathdots 1
36
- \cite_engine natbib_authoryear
37
- \use_bibtopic false
38
- \use_indices false
39
- \paperorientation portrait
40
- \suppress_date false
41
- \use_refstyle 0
42
- \index Index
43
- \shortcut idx
44
- \color #008000
45
- \end_index
46
- \leftmargin 2.2cm
47
- \topmargin 3cm
48
- \rightmargin 2.2cm
49
- \bottommargin 3cm
50
- \secnumdepth 3
51
- \tocdepth 3
52
- \paragraph_separation indent
53
- \paragraph_indentation default
54
- \quotes_language english
55
- \papercolumns 1
56
- \papersides 1
57
- \paperpagestyle default
58
- \tracking_changes false
59
- \output_changes false
60
- \html_math_output 0
61
- \html_css_as_file 0
62
- \html_be_strict false
63
- \end_header
64
-
65
- \begin_body
66
-
67
- \begin_layout Title
68
- YNelson & YPetri – User Manual
69
- \end_layout
70
-
71
- \begin_layout Part*
72
- What is YNelson
73
- \end_layout
74
-
75
- \begin_layout Standard
76
-
77
- \family typewriter
78
- \color blue
79
- YNelson
80
- \family default
81
- \color inherit
82
- is a Ruby library (gem) providing the domain model and simulator of
83
- \emph on
84
- \color green
85
- Nelson nets
86
- \emph default
87
- \color inherit
88
- , and the domain-specific language (DSL) to handle them.
89
- A
90
- \emph on
91
- \color green
92
- Nelson net
93
- \emph default
94
- \color inherit
95
- is a cross between a
96
- \emph on
97
- \color green
98
- Petri net
99
- \emph default
100
- \color inherit
101
- , and a
102
- \emph on
103
- \color green
104
- ZZ structure
105
- \emph default
106
- \color inherit
107
- (as described by Ted Nelson, ...).
108
- In accordance with this,
109
- \family typewriter
110
- YNelson
111
- \family default
112
- is a combination of two major dependencies:
113
- \family typewriter
114
- \color blue
115
- YPetri
116
- \family default
117
- \color inherit
118
- gem, providing the the domain model of Petri nets, and
119
- \family typewriter
120
- \color blue
121
- Yzz
122
- \family default
123
- \color inherit
124
- gem, providing the domain model of ZZ structures.
125
- At the moment being, the focus of the development (and this user manual)
126
- is the Petri net model –
127
- \family typewriter
128
- YPetri
129
- \family default
130
- .
131
- Since
132
- \family typewriter
133
- YNelson
134
- \family default
135
- provides the same interface to the Petri net model as
136
- \family typewriter
137
- YPetri
138
- \family default
139
- , this text can also serve as a user manual to plain
140
- \family typewriter
141
- YPetri
142
- \family default
143
- .
144
- As for the ZZ structures, they are a promising data structure acting as
145
- a non-SQL relational database, but their use by YNelson is still under
146
- development – ZZ structures are so basic, that it's not clear, how deep
147
- in the object model should their usage go.
148
- \end_layout
149
-
150
- \begin_layout Standard
151
-
152
- \family typewriter
153
- YNelson
154
- \family default
155
- requires Ruby 2.1, and can be installed from the command line by
156
- \begin_inset Quotes eld
157
- \end_inset
158
-
159
-
160
- \family typewriter
161
- gem install y_nelson
162
- \family default
163
-
164
- \begin_inset Quotes erd
165
- \end_inset
166
-
167
- .
168
- The main dependencies,
169
- \family typewriter
170
- Yzz
171
- \family default
172
- and
173
- \family typewriter
174
- YPetri
175
- \family default
176
- , should install automatically, but can be installed manually by
177
- \begin_inset Quotes eld
178
- \end_inset
179
-
180
-
181
- \family typewriter
182
- gem install y_petri
183
- \family default
184
-
185
- \begin_inset Quotes erd
186
- \end_inset
187
-
188
- and
189
- \begin_inset Quotes eld
190
- \end_inset
191
-
192
-
193
- \family typewriter
194
- gem install y
195
- \family default
196
- zz
197
- \begin_inset Quotes erd
198
- \end_inset
199
-
200
- .
201
- \end_layout
202
-
203
- \begin_layout Part*
204
- Functional Petri nets
205
- \end_layout
206
-
207
- \begin_layout Standard
208
- Petri nets were described by C.
209
- A.
210
- Petri in the middle of 20th century.
211
- A Petri net can be used to represent various
212
- \begin_inset Quotes eld
213
- \end_inset
214
-
215
- wiring diagrams
216
- \begin_inset Quotes erd
217
- \end_inset
218
-
219
- – such as production lines, rail networks, electronic circuits, computer
220
- architectures, parallel execution diagrams, or chemical systems.
221
- In fact, already Petri himself proposet to use Petri nets for modeling
222
- chemical reactions.
223
- In other words, chemical network modeling was one of the design goals of
224
- Petri nets since their inception.
225
- \end_layout
226
-
227
- \begin_layout Standard
228
- A Petri net diagram consists of
229
- \emph on
230
- \color green
231
- places
232
- \emph default
233
- \color inherit
234
- ,
235
- \emph on
236
- \color green
237
- transitions
238
- \emph default
239
- \color inherit
240
- , and
241
- \emph on
242
- \color green
243
- arcs
244
- \emph default
245
- \color inherit
246
- .
247
- Places are typically drawn as circles, transitions as rectangles, and arcs
248
- as lines or arrows connecting places and transitions.
249
- Petri net places may contain
250
- \emph on
251
- \color green
252
- tokens
253
- \emph default
254
- \color inherit
255
- .
256
- Another word for a number of token in a place(s) is
257
- \emph on
258
- \color green
259
- marking
260
- \emph default
261
- \color inherit
262
- .
263
- In
264
- \family typewriter
265
- YNelson
266
- \family default
267
- , the amount of tokens (place's marking) is represented by a number attached
268
- to the place.
269
- When transitions operate (
270
- \emph on
271
- \color green
272
- fire
273
- \emph default
274
- \color inherit
275
- ), tokens are added to or removed from the places, to which the transition
276
- is connected.
277
- It is the property of Petri nets, that their
278
- \emph on
279
- \color green
280
- state
281
- \emph default
282
- \color inherit
283
- is fully expressed by the places' marking – the transitions are completely
284
- stateless.
285
- \end_layout
286
-
287
- \begin_layout Standard
288
- Original Petri nets were
289
- \emph on
290
- \color green
291
- timeless
292
- \emph default
293
- \color inherit
294
- .
295
- In a timeless Petri net, transition firing is a discrete event, whose exact
296
- timing is not specified.
297
- Instead, a timeless Petri net specifies the conditions, under which a transitio
298
- n is
299
- \emph on
300
- \color green
301
- enabled
302
- \emph default
303
- \color inherit
304
-
305
- \emph on
306
- allowed
307
- \emph default
308
- to fire, or
309
- \emph on
310
- \color green
311
- disabled
312
- \emph default
313
- \color inherit
314
- – is
315
- \emph on
316
- prohibited
317
- \emph default
318
- to fire.
319
- Typically, a transition in a timeless Petri net is generally enabled, when
320
- its input arcs have enough tokens for firing to happen, though other firing
321
- conditions may be specified.
322
- Timeless Petri nets are generally used to investigate concurrency – things
323
- like race conditions, network congestions, state reachability etc.
324
- Interaction with timeless Petri nets is called
325
- \emph on
326
- \color green
327
- token game
328
- \emph default
329
- \color inherit
330
- .
331
- \end_layout
332
-
333
- \begin_layout Standard
334
-
335
- \emph on
336
- \color green
337
- Timed Petri nets
338
- \emph default
339
- \color inherit
340
- operate in time.
341
- They specify when (or how rapidly) the transitions firing occurs.
342
- (The specification may be of stochastic.) Whereas a timeless Petri net requires
343
- the user to play the token game, timed Petri net can be
344
- \emph on
345
- \color green
346
- executed
347
- \emph default
348
- \color inherit
349
- in time.
350
- Timed Petri nets actually represent a wiring diagram of a dynamic system,
351
- from which a set of differential equations describing the system can be
352
- derived.
353
- Even if the differential equations are not expressed explicitly, execution
354
- of a timed Petri net is tantamount to numeric integration of its equivalent
355
- DE system.
356
- \end_layout
357
-
358
- \begin_layout Part*
359
- YPetri object model
360
- \end_layout
361
-
362
- \begin_layout Subsection*
363
-
364
- \family typewriter
365
- Place
366
- \family default
367
- ,
368
- \family typewriter
369
- Transition
370
- \family default
371
- and
372
- \family typewriter
373
- Net
374
- \family default
375
- class
376
- \end_layout
377
-
378
- \begin_layout Standard
379
- The main classes of
380
- \family typewriter
381
- YPetri
382
- \family default
383
- object model are
384
- \family typewriter
385
- Place
386
- \family default
387
- ,
388
- \family typewriter
389
- Transition
390
- \family default
391
- , and
392
- \family typewriter
393
- Net
394
- \family default
395
- .
396
- A
397
- \family typewriter
398
- Net
399
- \family default
400
- instance represents a Petri net, consisting of
401
- \family typewriter
402
- Place
403
- \family default
404
- instances and
405
- \family typewriter
406
- Transition
407
- \family default
408
- instances.
409
-
410
- \family typewriter
411
- Net
412
- \family default
413
- class is a (subclass of)
414
- \family typewriter
415
- Module
416
- \family default
417
- class, so places and transitions can simply be defined as its constants.
418
- If a transition belongs to a net, all the places connected to it must belong
419
- to the same net.
420
- \end_layout
421
-
422
- \begin_layout Standard
423
- Transitions can be divided into ...
424
- s / S, t / T, a / A ...
425
- this gives 5 basic types ...
426
- \end_layout
427
-
428
- \begin_layout Subsection*
429
-
430
- \family typewriter
431
- Simulation
432
- \family default
433
- and
434
- \family typewriter
435
- Core
436
- \family default
437
- class
438
- \end_layout
439
-
440
- \begin_layout Standard
441
-
442
- \family typewriter
443
- Simulation
444
- \family default
445
- class represents a simulation of a particular network, with particular
446
- simulation settings.
447
-
448
- \family typewriter
449
- Core
450
- \family default
451
- class represents the simulator – a machine that performs the execution
452
- of a Petri net.
453
- When a simulation instance wants to proceed in time to a next state, it
454
- realies on a
455
- \family typewriter
456
- Core
457
- \family default
458
- instance to perform the computation.
459
- \end_layout
460
-
461
- \begin_layout Standard
462
-
463
- \family typewriter
464
- Simulation
465
- \family default
466
- – Public instance methods
467
- \end_layout
468
-
469
- \begin_layout Standard
470
- place access:
471
- \end_layout
472
-
473
- \begin_layout Standard
474
- ...
475
- \end_layout
476
-
477
- \begin_layout Standard
478
- transition access:
479
- \end_layout
480
-
481
- \begin_layout Standard
482
- ...
483
- \end_layout
484
-
485
- \begin_layout Standard
486
- element access:
487
- \end_layout
488
-
489
- \begin_layout Standard
490
- ...
491
- \end_layout
492
-
493
- \begin_layout Standard
494
- inital marking access:
495
- \end_layout
496
-
497
- \begin_layout Standard
498
- ...
499
- \end_layout
500
-
501
- \begin_layout Standard
502
- marking clamp access:
503
- \end_layout
504
-
505
- \begin_layout Standard
506
- ...
507
- \end_layout
508
-
509
- \begin_layout Standard
510
- marking vector access:
511
- \end_layout
512
-
513
- \begin_layout Standard
514
- m_vector – as a column vector
515
- \end_layout
516
-
517
- \begin_layout Standard
518
- m – as an array
519
- \end_layout
520
-
521
- \begin_layout Standard
522
- place_m – as place => value hash
523
- \end_layout
524
-
525
- \begin_layout Standard
526
- p_m – as place name => value hash
527
- \end_layout
528
-
529
- \begin_layout Standard
530
- pm – pretty prints the name => value hash
531
- \end_layout
532
-
533
- \begin_layout Standard
534
- update_m – modifies the marking vector
535
- \end_layout
536
-
537
- \begin_layout Standard
538
- marking_vector – as m_vector, for free places only
539
- \end_layout
540
-
541
- \begin_layout Standard
542
- marking – as m, for free places only
543
- \end_layout
544
-
545
- \begin_layout Standard
546
- place_marking – as place_m, for free places only
547
- \end_layout
548
-
549
- \begin_layout Standard
550
- p_marking – as p_m, for free places only
551
- \end_layout
552
-
553
- \begin_layout Standard
554
- update_marking – as update_m, but the places must be free places only
555
- \end_layout
556
-
557
- \begin_layout Standard
558
- increment_marking – increments the marking vector with a supplied difference
559
- vector (whose positions corresponds to free places)
560
- \end_layout
561
-
562
- \begin_layout Standard
563
- ...
564
- \end_layout
565
-
566
- \begin_layout Standard
567
- own methods:
568
- \end_layout
569
-
570
- \begin_layout Standard
571
- firing – returns firing of the indicated tS transitions
572
- \end_layout
573
-
574
- \begin_layout Standard
575
- t_firing – same as has transition name => firing
576
- \end_layout
577
-
578
- \begin_layout Standard
579
- pfiring – pretty prints firing
580
- \end_layout
581
-
582
- \begin_layout Standard
583
- ??? flux
584
- \end_layout
585
-
586
- \begin_layout Standard
587
- ??? t_flux
588
- \end_layout
589
-
590
- \begin_layout Standard
591
- ??? pflux
592
- \end_layout
593
-
594
- \begin_layout Standard
595
- ??? gradient
596
- \end_layout
597
-
598
- \begin_layout Standard
599
- ??? p_gradient
600
- \end_layout
601
-
602
- \begin_layout Standard
603
- ??? pgradient
604
- \end_layout
605
-
606
- \begin_layout Standard
607
- ??? delta
608
- \end_layout
609
-
610
- \begin_layout Standard
611
- ??? p_delta
612
- \end_layout
613
-
614
- \begin_layout Standard
615
- ??? pdelta
616
- \end_layout
617
-
618
- \begin_layout Standard
619
- ...
620
- \end_layout
621
-
622
- \begin_layout Standard
623
- Core class is a bit intimate to YPetri, it is not directly controlled by
624
- the user.
625
- \end_layout
626
-
627
- \begin_layout Standard
628
-
629
- \family typewriter
630
- Core
631
- \family default
632
- – Public class methods
633
- \end_layout
634
-
635
- \begin_layout Standard
636
- new – constructor
637
- \end_layout
638
-
639
- \begin_layout Standard
640
- using_simulation_method( symbol, guarded: false ) – constructor
641
- \end_layout
642
-
643
- \begin_layout Standard
644
-
645
- \family typewriter
646
- Core
647
- \family default
648
- – Public instance methods
649
- \end_layout
650
-
651
- \begin_layout Standard
652
- guarded?
653
- \end_layout
654
-
655
- \begin_layout Standard
656
- delta_timeless
657
- \end_layout
658
-
659
- \begin_layout Standard
660
- delta_tS
661
- \end_layout
662
-
663
- \begin_layout Standard
664
- delta_ts
665
- \end_layout
666
-
667
- \begin_layout Standard
668
- firing_vector_tS
669
- \end_layout
670
-
671
- \begin_layout Standard
672
- increment_marking_vector( delta )
673
- \end_layout
674
-
675
- \begin_layout Standard
676
- assignment_transitions_all_fire!
677
- \end_layout
678
-
679
- \begin_layout Subsection*
680
-
681
- \family typewriter
682
- Net::State
683
- \family default
684
- , state features, and
685
- \family typewriter
686
- Record
687
- \end_layout
688
-
689
- \begin_layout Standard
690
- A particular Petri net, as mentioned earlier, may have state, which is entirely
691
- given by the marking vector of its places.
692
- This state is represented in YPetri by Net::State class.
693
- Furthermore, a net in a particular state can have various features defined
694
- on it.
695
- A feature is represented by
696
- \family typewriter
697
- Net::State::Feature
698
- \family default
699
- class.
700
- At the moment being, following features are supported:
701
- \family typewriter
702
- Marking
703
- \family default
704
- ,
705
- \family typewriter
706
- Firing
707
- \family default
708
- ,
709
- \family typewriter
710
- Flux
711
- \family default
712
- ,
713
- \family typewriter
714
- Gradient
715
- \family default
716
- and
717
- \family typewriter
718
- Delta
719
- \family default
720
- .
721
- For each feature, measurement can be performed on a net in a particular
722
- state, returning the feature's value.
723
- A collection of such features is called a feature set, and is represented
724
- by
725
- \family typewriter
726
- Net::State::Features
727
- \family default
728
- class in
729
- \family typewriter
730
- YPetri
731
- \family default
732
- .
733
- Measurement performed for a particular feature set results in a
734
- \family typewriter
735
- Record
736
- \family default
737
- instance.
738
- Record is an Array subclass, but it remembers the features to which the
739
- stored values correspond.
740
- \end_layout
741
-
742
- \begin_layout Standard
743
-
744
- \family typewriter
745
- Feature
746
- \family default
747
- – Public instance methods
748
- \end_layout
749
-
750
- \begin_layout Standard
751
- extract_from( target, **nn ) – extracts the feature from the given target
752
- object.
753
- The target object must own a net state for the same net, for which this
754
- state feature was defined.
755
- \end_layout
756
-
757
- \begin_layout Standard
758
- label – label for this feature (to use in graphics etc.)
759
- \end_layout
760
-
761
- \begin_layout Standard
762
- ...
763
- \end_layout
764
-
765
- \begin_layout Standard
766
-
767
- \family typewriter
768
- Features
769
- \family default
770
- – Public class methods
771
- \end_layout
772
-
773
- \begin_layout Standard
774
- new – Constructor / instance reference
775
- \end_layout
776
-
777
- \begin_layout Standard
778
- marking, flux, firing, gradient, delta – Features instance reference
779
- \end_layout
780
-
781
- \begin_layout Standard
782
-
783
- \family typewriter
784
- Features
785
- \family default
786
- – Public instance methods
787
- \end_layout
788
-
789
- \begin_layout Standard
790
- extract_from( target, **nn ) - extracts the feature set from a given target,
791
- returning a Record instance.
792
- \end_layout
793
-
794
- \begin_layout Standard
795
- new_record( values ) – Record instance constructor
796
- \end_layout
797
-
798
- \begin_layout Standard
799
- +, -, * – same as for arrays
800
- \end_layout
801
-
802
- \begin_layout Standard
803
- labels – feature labels
804
- \end_layout
805
-
806
- \begin_layout Standard
807
- reduce_features –
808
- \end_layout
809
-
810
- \begin_layout Standard
811
- marking, flux, firing, gradient, delta – feature reduction
812
- \end_layout
813
-
814
- \begin_layout Standard
815
- ...
816
- \end_layout
817
-
818
- \begin_layout Standard
819
-
820
- \family typewriter
821
- State
822
- \family default
823
- -- Public class methods
824
- \end_layout
825
-
826
- \begin_layout Standard
827
- feature -- Feature instance reference
828
- \end_layout
829
-
830
- \begin_layout Standard
831
- features – Features (feature set) instance reference
832
- \end_layout
833
-
834
- \begin_layout Standard
835
- marking, flux, firing, gradient, delta – Features instance reference
836
- \end_layout
837
-
838
- \begin_layout Standard
839
-
840
- \family typewriter
841
- State
842
- \family default
843
- -- Public instance method
844
- \end_layout
845
-
846
- \begin_layout Standard
847
- ...
848
- \end_layout
849
-
850
- \begin_layout Standard
851
-
852
- \family typewriter
853
- Record
854
- \family default
855
- -- Public class methods
856
- \end_layout
857
-
858
- \begin_layout Standard
859
- features – returns the features to which the record values correspond
860
- \end_layout
861
-
862
- \begin_layout Standard
863
- load( values ) - constructs a new Record object from a given collection
864
- of values.
865
- \end_layout
866
-
867
- \begin_layout Standard
868
- Record -- Public instance methods
869
- \end_layout
870
-
871
- \begin_layout Standard
872
- marking, firing, flux, gradient, delta – feature extraction from a record
873
- \end_layout
874
-
875
- \begin_layout Standard
876
- fetch( feature ) – single feature extraction from a record
877
- \end_layout
878
-
879
- \begin_layout Standard
880
- dump – should it be renamed to #to_a?
881
- \end_layout
882
-
883
- \begin_layout Standard
884
- print – pretty prints the records with feature names
885
- \end_layout
886
-
887
- \begin_layout Standard
888
- state( marking_clamps: {} ) – returns the state instance implied by the
889
- record and the supplied complementary set of marking clamps
890
- \end_layout
891
-
892
- \begin_layout Standard
893
- reconstruct( **settings ) – reconstructs a simulation instance from the
894
- record and the given simulation settings
895
- \end_layout
896
-
897
- \begin_layout Standard
898
- euclidean_distance( other ) – computes the Euclidean distance to another
899
- record with the same feature set.
900
- \end_layout
901
-
902
- \begin_layout Subsection*
903
-
904
- \family typewriter
905
- DataSet
906
- \family default
907
- class
908
- \end_layout
909
-
910
- \begin_layout Standard
911
- ...
912
- \end_layout
913
-
914
- \begin_layout Standard
915
-
916
- \family typewriter
917
- DataSet
918
- \family default
919
- -- Public instance methods
920
- \end_layout
921
-
922
- \begin_layout Standard
923
- net – a dataset knows its net
924
- \end_layout
925
-
926
- \begin_layout Standard
927
- reduce_features – selects certain columns (features) of a dataset.
928
- \end_layout
929
-
930
- \begin_layout Standard
931
- slice – since DataSet is a Hash subclass, YSupport's Hash#slice method is
932
- available to it, and can be used to select only certain rows (records)
933
- of a dataset.
934
- \end_layout
935
-
936
- \begin_layout Standard
937
- marking, firing, flux, gradient, delta – additional convenience methods
938
- for selecting particular columns and rows from the dataset
939
- \end_layout
940
-
941
- \begin_layout Standard
942
- record( event ) – returns the record instance for a given recorded key
943
- \end_layout
944
-
945
- \begin_layout Standard
946
- floor( event ), ceiling( event ) – given a key value, they return the nearest
947
- record actually present in the dataset – floor returns the nearest lower
948
- or equal, ceiling the nearest higher or equal record.
949
- \end_layout
950
-
951
- \begin_layout Standard
952
- interpolate( event ) – Interpolates a record for a given key.
953
- \end_layout
954
-
955
- \begin_layout Standard
956
- print – pretty-prints the dataset
957
- \end_layout
958
-
959
- \begin_layout Standard
960
- plot – plots the dataset
961
- \end_layout
962
-
963
- \begin_layout Standard
964
- resample – resamples the recording
965
- \end_layout
966
-
967
- \begin_layout Standard
968
- series – returns the data series for the specified features
969
- \end_layout
970
-
971
- \begin_layout Standard
972
- timed? – whether the dataset type is timed
973
- \end_layout
974
-
975
- \begin_layout Standard
976
- reconstruct( event:, **settings ) – reconstructs a simulation instance for
977
- a given key
978
- \end_layout
979
-
980
- \begin_layout Subsection*
981
-
982
- \family typewriter
983
- YPetri::World
984
- \family default
985
- and
986
- \family typewriter
987
- YPetri::Agent
988
- \family default
989
- class
990
- \end_layout
991
-
992
- \begin_layout Standard
993
-
994
- \family typewriter
995
- YPetri::World
996
- \family default
997
- is the object space where places, transitions, and nets live.
998
- (Originally, this class was named
999
- \family typewriter
1000
- Workspace
1001
- \family default
1002
- , but
1003
- \family typewriter
1004
- World
1005
- \family default
1006
- is shorter.) As for
1007
- \family typewriter
1008
- YPetri::Agent
1009
- \family default
1010
- class, it represents the user and acts as user proxy to
1011
- \family typewriter
1012
- YPetri::World
1013
- \family default
1014
- instance.
1015
-
1016
- \family typewriter
1017
- YPetri::Agent
1018
- \family default
1019
- does not encapsulate
1020
- \family typewriter
1021
- YPetri
1022
- \family default
1023
- as completely, as the Law of Demeter might require, but it does one very
1024
- useful thing: It defines the top-level DSL commands (methods) that are
1025
- available upon calling '
1026
- \family typewriter
1027
- include YPetri
1028
- \family default
1029
- ' or '
1030
- \family typewriter
1031
- include YNelson
1032
- \family default
1033
- '.
1034
- \end_layout
1035
-
1036
- \end_body
1037
- \end_document