blob: 493b2282cd8aed3bfca99382116cd623041e9569 [file] [log] [blame]
mparker867cea02009-07-16 20:52:39 +00001<?xml version="1.0" encoding="UTF-8"?>
2<metaabm:SContext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:act="http://metaabm.org/act" xmlns:function="http://metaabm.org/function" xmlns:metaabm="http://metaabm.org/structure" label="Stupid Model 2" ID="stupidModel2" pluralLabel="Stupid Model 2s">
3 <attributes label="Bug Count" ID="bugCount" pluralLabel="Bug Counts" description="The number of bugs to create." sType="INTEGER" defaultValue="100"/>
4 <attributes label="Habitat Count" ID="habitatCount" pluralLabel="Habitat Counts" description="The number of habitats to create." sType="INTEGER"/>
5 <attributes label="Max Bug Size Color" ID="maxBugSizeColor" pluralLabel="Max Bug Size Colors"/>
6 <attributes label="Bug Vision" ID="bugVision" pluralLabel="Bug Visions" sType="INTEGER" defaultValue="4"/>
7 <rootActivity xsi:type="act:AGroup" label="Root Act Group" ID="rootActGroup" pluralLabel="Root Act Groups">
8 <members xsi:type="act:ABuild" label="Build basicModel" ID="buildbasicModel" targets="//@rootActivity/@members[ID='createBugs'] //@rootActivity/@members[ID='createHabitats'] //@rootActivity/@members[ID='fillGrid']" selected="//@rootActivity/@members[ID='buildbasicModel']" agent="/" pluralLabel="Build basicModels"/>
9 <members xsi:type="act:ACreateAgents" label="Create Bugs" ID="createBugs" sources="//@rootActivity/@members[ID='buildbasicModel']" selected="//@rootActivity/@members[ID='buildbasicModel']" agent="//@agents[ID='bug']" agentCount="//@attributes[ID='bugCount']"/>
10 <members xsi:type="act:ACreateAgents" label="Create Habitats" ID="createHabitats" sources="//@rootActivity/@members[ID='buildbasicModel']" selected="//@rootActivity/@members[ID='buildbasicModel']" agent="//@agents[ID='habitat']" agentCount="//@attributes[ID='habitatCount']"/>
11 <members xsi:type="act:ABuildGrid" label="Fill Grid" ID="fillGrid" sources="//@rootActivity/@members[ID='buildbasicModel']" selected="//@rootActivity/@members[ID='buildbasicModel']" pluralLabel="Fill Grids" agents="//@agents[ID='bug']" projection="//@projections[ID='grid2D']" fillAgent="//@agents[ID='habitat']"/>
12 </rootActivity>
13 <implementation package="org.metaabm.examples.stupid2" className="StupidModel2" basePath=""/>
14 <agents label="Bug" ID="bug" pluralLabel="Bugs">
15 <attributes label="Size" ID="size" pluralLabel="Sizes" sType="INTEGER" defaultValue="0"/>
16 <rootActivity xsi:type="act:AGroup" label="Root Act Group" ID="rootActGroup" pluralLabel="Root Act Groups">
17 <members xsi:type="act:AInitialize" label="Initialize" ID="initialize" targets="//@agents[ID='bug']/@rootActivity/@members[ID='randomHabitat']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='initialize']" agent="//@agents[ID='bug']" space="//@projections[ID='grid2D']" pluralLabel="Initializes"/>
18 <members xsi:type="act:ASelect" label="RandomHabitat" ID="randomHabitat" sources="//@agents[ID='bug']/@rootActivity/@members[ID='initialize']" targets="//@agents[ID='bug']/@rootActivity/@members[ID='randomHabitatAvailableQuery']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='initialize']" agent="//@agents[ID='habitat']" space="//@projections[ID='grid2D']"/>
19 <members xsi:type="act:AQuery" label="RandomHabitat: Available() Query" ID="randomHabitatAvailableQuery" sources="//@agents[ID='bug']/@rootActivity/@members[ID='randomHabitat']" targets="//@agents[ID='bug']/@rootActivity/@members[ID='movetoRandomHabitat']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='randomHabitat']">
20 <function xsi:type="function:FGenericLogical" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='spatial']/@functions[ID='available']"/>
21 </members>
22 <members xsi:type="act:AMove" label="Move to Random Habitat" ID="movetoRandomHabitat" sources="//@agents[ID='bug']/@rootActivity/@members[ID='randomHabitatAvailableQuery']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='initialize']" destination="//@agents[ID='bug']/@rootActivity/@members[ID='randomHabitat']"/>
23 <members xsi:type="act:ARule" label="Random Movement" ID="randomMovement" targets="//@agents[ID='bug']/@rootActivity/@members[ID='nearbySpace']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='randomMovement']" agent="//@agents[ID='bug']" space="//@projections[ID='grid2D']" pluralLabel="Random Movements"/>
24 <members xsi:type="act:ASelect" label="Nearby Space" ID="nearbySpace" sources="//@agents[ID='bug']/@rootActivity/@members[ID='randomMovement']" targets="//@agents[ID='bug']/@rootActivity/@members[ID='habitatAvailable'] //@agents[ID='bug']/@rootActivity/@members[ID='habitatWithin']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='randomMovement']" agent="//@agents[ID='habitat']" space="//@projections[ID='grid2D']"/>
25 <members xsi:type="act:AQuery" label="Habitat Available" ID="habitatAvailable" sources="//@agents[ID='bug']/@rootActivity/@members[ID='nearbySpace']" targets="//@agents[ID='bug']/@rootActivity/@members[ID='nearbySpace_HabitatAvailableAndHabitatWithin_']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='nearbySpace']">
26 <function xsi:type="function:FGenericLogical" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='spatial']/@functions[ID='available']"/>
27 </members>
28 <members xsi:type="act:AQuery" label="Habitat Within" ID="habitatWithin" sources="//@agents[ID='bug']/@rootActivity/@members[ID='nearbySpace']" targets="//@agents[ID='bug']/@rootActivity/@members[ID='nearbySpace_HabitatAvailableAndHabitatWithin_']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='nearbySpace']">
29 <inputs selected="//@agents[ID='bug']/@rootActivity/@members[ID='randomMovement']" value="//@attributes[ID='bugVision']"/>
30 <function xsi:type="function:FGenericLogical" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='spatial']/@functions[ID='within']"/>
31 </members>
32 <members xsi:type="act:AAll" label="Nearby Space (Habitat Available &amp; Habitat Within)" ID="nearbySpace_HabitatAvailableAndHabitatWithin_" sources="//@agents[ID='bug']/@rootActivity/@members[ID='habitatAvailable'] //@agents[ID='bug']/@rootActivity/@members[ID='habitatWithin']" targets="//@agents[ID='bug']/@rootActivity/@members[ID='movetoHabitatinGrid2DCopy']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='nearbySpace']"/>
33 <members xsi:type="act:AMove" label="Move to Habitat in Grid 2D Copy" ID="movetoHabitatinGrid2DCopy" sources="//@agents[ID='bug']/@rootActivity/@members[ID='nearbySpace_HabitatAvailableAndHabitatWithin_']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='randomMovement']" destination="//@agents[ID='bug']/@rootActivity/@members[ID='nearbySpace']"/>
34 <members xsi:type="act:ARule" label="Grow" ID="grow" targets="//@agents[ID='bug']/@rootActivity/@members[ID='growIncrementSize']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='grow']" agent="//@agents[ID='bug']" space="//@projections[ID='grid2D']" pluralLabel="Grows"/>
35 <members xsi:type="act:AEvaluate" label="Grow: Increment Size" ID="growIncrementSize" sources="//@agents[ID='bug']/@rootActivity/@members[ID='grow']" targets="//@agents[ID='bug']/@rootActivity/@members[ID='setSizeToGrowIncrementSize']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='grow']">
36 <inputs selected="//@agents[ID='bug']/@rootActivity/@members[ID='grow']" value="//@agents[ID='bug']/@attributes[ID='size']"/>
37 <function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='increment']"/>
38 </members>
39 <members xsi:type="act:ASet" label="Set Size To Grow: Increment Size" ID="setSizeToGrowIncrementSize" sources="//@agents[ID='bug']/@rootActivity/@members[ID='growIncrementSize']" selected="//@agents[ID='bug']/@rootActivity/@members[ID='grow']" attribute="//@agents[ID='bug']/@attributes[ID='size']" parameter="//@agents[ID='bug']/@rootActivity/@members[ID='growIncrementSize']"/>
40 </rootActivity>
41 <implementation className="Bug"/>
42 <styles xsi:type="metaabm:SStyle2D" label="Bug Style 2D" ID="bugStyle2D" pluralLabel="Bug Style 2Ds">
43 <rootActivity xsi:type="act:AGroup" label="Root Act Group" ID="rootActGroup" pluralLabel="Root Act Groups">
44 <members xsi:type="act:ARule" label="Bug Rule" ID="bugRule" targets="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugSizeRatio']" selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']" agent="//@agents[ID='bug']" space="//@projections[ID='grid2D']" pluralLabel="Bug Rules"/>
45 <members xsi:type="act:AEvaluate" label="Bug Size Ratio" ID="bugSizeRatio" sources="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']" targets="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugSizeUnit']" selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']">
46 <inputs selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']" value="//@agents[ID='bug']/@attributes[ID='size']"/>
47 <inputs selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']" value="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugSizeRatio']/@inputs.1/@literal">
48 <literal label="Literal 10.0" ID="literal10pt0" valueLiteral="10.0"/>
49 </inputs>
50 <function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='div']"/>
51 </members>
52 <members xsi:type="act:AEvaluate" label="Bug Size Unit" ID="bugSizeUnit" sources="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugSizeRatio']" targets="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='invertBugSize']" selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']">
53 <inputs selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']" value="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugSizeRatio']"/>
54 <inputs selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']" value="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugSizeUnit']/@inputs.1/@literal">
55 <literal label="Literal 1.0" ID="literal1pt0" valueLiteral="1.0"/>
56 </inputs>
57 <function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='math']/@functions[ID='min']"/>
58 </members>
59 <members xsi:type="act:AEvaluate" label="Bug Rule: Color RGB(Bug Rule: Minimum(Bug Size Ratio, Literal 1.0), Literal 1.0, Literal 1.0)" ID="bugRuleColorRGB_BugRuleMinimum_BugSizeRatioLiteral1pt0_Literal1pt0Literal1pt0_" sources="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='invertBugSize']" targets="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRuleShapeOval']" selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']">
60 <inputs selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']" value="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRuleColorRGB_BugRuleMinimum_BugSizeRatioLiteral1pt0_Literal1pt0Literal1pt0_']/@inputs.0/@literal">
61 <literal label="Literal 1.0" ID="literal1pt0" valueLiteral="1.0"/>
62 </inputs>
63 <inputs selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']" value="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='invertBugSize']"/>
64 <inputs selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']" value="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='invertBugSize']"/>
65 <function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='graphic']/@functions[ID='colorRGB']"/>
66 </members>
67 <members xsi:type="act:AEvaluate" label="Bug Rule: Shape Oval()" ID="bugRuleShapeOval" sources="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRuleColorRGB_BugRuleMinimum_BugSizeRatioLiteral1pt0_Literal1pt0Literal1pt0_']" targets="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRuleGraphicFill']" selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']">
68 <function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='graphic']/@functions[ID='shapeOval']"/>
69 </members>
70 <members xsi:type="act:AEvaluate" label="Bug Rule: Graphic Fill()" ID="bugRuleGraphicFill" sources="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRuleShapeOval']" selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']">
71 <function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='graphic']/@functions[ID='graphicFill']"/>
72 </members>
73 <members xsi:type="act:AEvaluate" label="Invert Bug Size" ID="invertBugSize" sources="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugSizeUnit']" targets="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRuleColorRGB_BugRuleMinimum_BugSizeRatioLiteral1pt0_Literal1pt0Literal1pt0_']" selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']">
74 <inputs selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']">
75 <value xsi:type="metaabm:SAttribute" href="http://metaabm.org/core_library.metaabm#//@attributes[ID='unit']"/>
76 </inputs>
77 <inputs selected="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugRule']" value="//@agents[ID='bug']/@styles[ID='bugStyle2D']/@rootActivity/@members[ID='bugSizeUnit']"/>
78 <function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='sub']"/>
79 </members>
80 </rootActivity>
81 <implementation className="BugStyle2D"/>
82 </styles>
83 </agents>
84 <agents label="Habitat" ID="habitat" pluralLabel="Habitats">
85 <rootActivity xsi:type="act:AGroup" label="Root Act Group" ID="rootActGroup" pluralLabel="Root Act Groups"/>
86 <implementation className="Habitat"/>
87 <styles xsi:type="metaabm:SStyle2D" label="Habitat Style 2D" ID="habitatStyle2D" pluralLabel="Habitat Style 2Ds">
88 <rootActivity xsi:type="act:AGroup" label="Root Act Group" ID="rootActGroup" pluralLabel="Root Act Groups"/>
89 <implementation className="HabitatStyle2D"/>
90 </styles>
91 </agents>
92 <projections xsi:type="metaabm:SGrid" label="Grid 2D" ID="grid2D" pluralLabel="Grid 2Ds" dimensionality="2" borderRule="PERIODIC" neighborhood="MOORE">
93 <attributes xsi:type="metaabm:SAttributeArray" label="Dimensions" ID="dimensions" pluralLabel="Dimensionss" description="The size of each dimension." sType="INTEGER" size="2"/>
94 <attributes label="Width" ID="width" pluralLabel="Widths" description="The horizontal extent of the space." sType="INTEGER" defaultValue="100"/>
95 <attributes label="Height" ID="height" pluralLabel="Heights" description="The vertical extent of the space." sType="INTEGER" defaultValue="100"/>
96 </projections>
97</metaabm:SContext>