2-APL UPC project.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

started with prometheus

fdesan 909fc9d7 a48259e9

+9818 -6
+41 -3
docs/briscola_chiamata/bc-doc.tex
··· 34 34 35 35 Bla.Bla.Bla. 36 36 37 - \section{Analysis}\label{sec:analysis} 37 + Game description. Problem specification: the problem calls for a multi-agent system to provide ... 38 + 39 + Why is suitable for MAS? 40 + 41 + 42 + \section{System Specification}\label{sec:sysspec} 38 43 39 - Game description. 44 + The analysis overview diagram is designed to show the interactions between the system and the environment. At this abstract level it is necessary to identify the actors, scenarios, percepts and actions involved in the system. This consists of a two step process. Firstly, we identify the actors and the scenarios they participate in with the system. Secondly, we identify and define the actions and percepts between the actors and the system. 40 45 41 - Why is suitable for MAS? 46 + The actors are all the people or external systems associated with the system. The scenarios are the processes which the system uses to handle the percepts and produce the actions. The percepts are all the types information which come into the system from the environment. The actions are everything that is sent from the system to the environment. 47 + 48 + \subsection{Analysis overview} 49 + 50 + Actors: 51 + \begin{itemize} 52 + \item Player: the agent/user who play the game 53 + %\item Croupier: the agent/user who shuffles and gives the card plus counts the points at the end| 54 + \end{itemize} 55 + 56 + Scenarios: 57 + \begin{itemize} 58 + \item Waiting for players scenario: the process which waits for 5 players in the system 59 + \item Begin game scenario: The process which shuffles and start giving the cards 60 + \item Partner selection scenario: The process which handles the partern selection phase 61 + \item Game scenario: The process which handles the whole game phase 62 + \end{itemize} 63 + 64 + Percepts: 65 + \begin{itemize} 66 + \item Join the game: Request sent from the user to join the game 67 + \item Playing cards: The player has thrown a card 68 + \item Talking players: Players are talking 69 + \end{itemize} 70 + 71 + Actions: 72 + \begin{itemize} 73 + \item Begin the game: the system informs the players that the game has begun 74 + \item Score declaration: request to make score declaration for each player 75 + \item Turn selection: the system informs the player that is its turn to throw a card 76 + \item Point distribution: the system informs the player of its actual score at the end of the game 77 + \end{itemize} 78 + 79 + % Analysis overview diagram here 42 80 43 81 \section{Design}\label{sec:design} 44 82
+12 -3
docs/briscola_chiamata/bc-pres.tex
··· 2 2 3 3 \usetheme{JuanLesPins} 4 4 5 - \title{Development of ``Briscola Chiamata'' Card Game using Multi-Agent Systems} 5 + \title{`Briscola Chiamata'' Card Game using Multi-Agent Systems} %% propose another title 6 6 7 7 \author[B. Borja Fiz, F. De Santis, M. Gabarda]{Beltran Borja Fiz, Fabrizio De Santis, Marcos Gabarda} 8 8 \institute[Universitat Polit\`ecnica de Catalunya]{ ··· 26 26 \frame[allowframebreaks]{ 27 27 \frametitle{Introduction} 28 28 \begin{itemize} 29 - \item ... 29 + \item Prometheus methodology (PDT Tool) 30 30 \item ... 31 31 \item ... 32 32 \end{itemize} 33 33 } 34 34 35 + \section{Problem Specification} 36 + 35 37 \frame[allowframebreaks]{ 36 38 \frametitle{Game Description} 39 + 40 + Problem specification: the problem calls for a multi-agent system to provide ... 37 41 38 42 } 39 43 ··· 42 46 \frametitle{Why is suitable for MAS?} 43 47 } 44 48 49 + \section{System Specification} 50 + 45 51 \frame[allowframebreaks]{ 46 - \frametitle{...} 52 + \frametitle{Analysis Overview Diagram} 53 + 54 + ....... 55 + 47 56 } 48 57 49 58 \frame[allowframebreaks]{
+565
docs/briscola_chiamata/pdt/BriscolaChiamata.pd
··· 1 + <?xml version="1.0"?> 2 + 3 + <jacob version="3.0"> 4 + 5 + <object type="PrometheusProject" id="0"> 6 + <field name="projectData"> 7 + <object type="ProjectData" id="1"> 8 + <field name="name">BriscolaChiamata</field> 9 + <field name="fileNameLastSavedAs">BriscolaChiamata.pd</field> 10 + <field name="filePathLastSavedIn">/home/therapy/upc/SMA/project/google/docs/briscola_chiamata/pdt</field> 11 + <field name="openedAs">/home/therapy/upc/SMA/project/google/docs/briscola_chiamata/pdt/BriscolaChiamata.pd</field> 12 + <field name="applicationVersion">3.3b_internal</field> 13 + </object> 14 + </field> 15 + <field name="diagramSettings"><list> 16 + <object type="DiagramSettings" id="2"> 17 + <field name="diagramId"> 18 + <object type="DiagramId" id="3"> 19 + <field name="stringId">Analysis Overview</field> 20 + </object> 21 + </field> 22 + <field name="entitySettings"><list> 23 + <object type="DiagramEntitySetting" id="4"> 24 + <field name="entity"> 25 + <object type="Actor" id="5"> 26 + <base type="Entity"> 27 + <field name="name">Player</field> 28 + <field name="description">The agent/user who play the game</field> 29 + <field name="uniqueId">1</field> 30 + <field name="connectTo"><list> 31 + <object type="Percept" id="6"> 32 + <base type="Interaction"> 33 + <base type="Entity"> 34 + <field name="name">Join the game</field> 35 + <field name="description">Request sent from the user to join the game</field> 36 + <field name="uniqueId">9</field> 37 + <field name="connectTo"><list> 38 + <object type="Scenario" id="7"> 39 + <base type="Entity"> 40 + <field name="name">Welcome players scenario</field> 41 + <field name="description">The process which welcoms the players and waits for 5 players in the system</field> 42 + <field name="uniqueId">8</field> 43 + </base> 44 + 45 + <field name="context"></field> 46 + <field name="variation"></field> 47 + <field name="linkedGoals"><list> 48 + <object type="Goal" id="8"> 49 + <base type="Entity"> 50 + <field name="name">Welcome players</field> 51 + <field name="uniqueId">7</field> 52 + </base> 53 + 54 + </object> 55 + </list> 56 + </field> 57 + </object> 58 + </list> 59 + </field> 60 + </base> 61 + 62 + </base> 63 + 64 + <field name="source"></field> 65 + <field name="informationCarried"></field> 66 + <field name="knowledgeUpdated"></field> 67 + <field name="processing"></field> 68 + <field name="frequency"></field> 69 + <field name="externalPath"></field> 70 + </object> 71 + 72 + <object type="Percept" id="9"> 73 + <base type="Interaction"> 74 + <base type="Entity"> 75 + <field name="name">Playing cards</field> 76 + <field name="description"></field> 77 + <field name="uniqueId">14</field> 78 + <field name="connectTo"><list> 79 + <object type="Scenario" id="10"> 80 + <base type="Entity"> 81 + <field name="name">Game scenario</field> 82 + <field name="description">The process which handles the whole game phase</field> 83 + <field name="uniqueId">16</field> 84 + <field name="connectTo"><list> 85 + <object type="Action" id="11"> 86 + <base type="Interaction"> 87 + <base type="Entity"> 88 + <field name="name">Turn selection</field> 89 + <field name="uniqueId">18</field> 90 + <field name="connectTo"><list> 91 + <object ref="5"/> 92 + </list> 93 + </field> 94 + </base> 95 + 96 + </base> 97 + 98 + </object> 99 + 100 + <object type="Percept" id="12"> 101 + <base type="Interaction"> 102 + <base type="Entity"> 103 + <field name="name">Talking player</field> 104 + <field name="description"></field> 105 + <field name="uniqueId">17</field> 106 + <field name="connectTo"><list> 107 + <object ref="5"/> 108 + </list> 109 + </field> 110 + </base> 111 + 112 + </base> 113 + 114 + <field name="source"></field> 115 + <field name="informationCarried"></field> 116 + <field name="knowledgeUpdated"></field> 117 + <field name="processing"></field> 118 + <field name="frequency"></field> 119 + <field name="externalPath"></field> 120 + </object> 121 + 122 + <object type="Action" id="13"> 123 + <base type="Interaction"> 124 + <base type="Entity"> 125 + <field name="name">Point distribution</field> 126 + <field name="uniqueId">19</field> 127 + <field name="connectTo"><list> 128 + <object ref="5"/> 129 + </list> 130 + </field> 131 + </base> 132 + 133 + </base> 134 + 135 + </object> 136 + </list> 137 + </field> 138 + </base> 139 + 140 + <field name="context"></field> 141 + <field name="variation"></field> 142 + <field name="linkedGoals"><list> 143 + <object type="Goal" id="14"> 144 + <base type="Entity"> 145 + <field name="name">Game</field> 146 + <field name="uniqueId">15</field> 147 + </base> 148 + 149 + </object> 150 + </list> 151 + </field> 152 + </object> 153 + </list> 154 + </field> 155 + </base> 156 + 157 + </base> 158 + 159 + <field name="source"></field> 160 + <field name="informationCarried"></field> 161 + <field name="knowledgeUpdated"></field> 162 + <field name="processing"></field> 163 + <field name="frequency"></field> 164 + <field name="externalPath"></field> 165 + </object> 166 + </list> 167 + </field> 168 + </base> 169 + 170 + </object> 171 + </field> 172 + <field name="location"> 173 + <object type="Coordinate" id="15"> 174 + <field name="x">349</field> 175 + <field name="y">126</field> 176 + </object> 177 + </field> 178 + </object> 179 + 180 + <object type="DiagramEntitySetting" id="16"> 181 + <field name="entity"> 182 + <object type="Actor" id="17"> 183 + <base type="Entity"> 184 + <field name="name">Croupier</field> 185 + <field name="description">The agent/user who shuffles and gives the card plus counts the points at the end|</field> 186 + <field name="uniqueId">2</field> 187 + </base> 188 + 189 + </object> 190 + </field> 191 + <field name="location"> 192 + <object type="Coordinate" id="18"> 193 + <field name="x">274</field> 194 + <field name="y">379</field> 195 + </object> 196 + </field> 197 + </object> 198 + 199 + <object type="DiagramEntitySetting" id="19"> 200 + <field name="entity"> 201 + <object type="Scenario" id="20"> 202 + <base type="Entity"> 203 + <field name="name">Begin game scenario</field> 204 + <field name="description">The process which shuffles and start giving the cards</field> 205 + <field name="uniqueId">4</field> 206 + <field name="connectTo"><list> 207 + <object type="Action" id="21"> 208 + <base type="Interaction"> 209 + <base type="Entity"> 210 + <field name="name">Begin the game</field> 211 + <field name="description"></field> 212 + <field name="uniqueId">10</field> 213 + <field name="connectTo"><list> 214 + <object ref="5"/> 215 + </list> 216 + </field> 217 + </base> 218 + 219 + </base> 220 + 221 + <field name="parameters"></field> 222 + <field name="durationDescription"></field> 223 + <field name="failureNotificationDescription"></field> 224 + <field name="partialChange"></field> 225 + <field name="sideEffects"></field> 226 + </object> 227 + </list> 228 + </field> 229 + </base> 230 + 231 + <field name="context"></field> 232 + <field name="variation"></field> 233 + <field name="linkedGoals"><list> 234 + <object type="Goal" id="22"> 235 + <base type="Entity"> 236 + <field name="name">Begin game</field> 237 + <field name="uniqueId">3</field> 238 + </base> 239 + 240 + </object> 241 + </list> 242 + </field> 243 + </object> 244 + </field> 245 + <field name="location"> 246 + <object type="Coordinate" id="23"> 247 + <field name="x">114</field> 248 + <field name="y">359</field> 249 + </object> 250 + </field> 251 + </object> 252 + 253 + <object type="DiagramEntitySetting" id="24"> 254 + <field name="entity"> 255 + <object type="Scenario" id="25"> 256 + <base type="Entity"> 257 + <field name="name">Giving cards scenario</field> 258 + <field name="description">The process which gives cards</field> 259 + <field name="uniqueId">6</field> 260 + </base> 261 + 262 + <field name="context"></field> 263 + <field name="variation"></field> 264 + <field name="linkedGoals"><list> 265 + <object type="Goal" id="26"> 266 + <base type="Entity"> 267 + <field name="name">Giving cards</field> 268 + <field name="uniqueId">5</field> 269 + </base> 270 + 271 + </object> 272 + </list> 273 + </field> 274 + </object> 275 + </field> 276 + <field name="location"> 277 + <object type="Coordinate" id="27"> 278 + <field name="x">409</field> 279 + <field name="y">248</field> 280 + </object> 281 + </field> 282 + </object> 283 + 284 + <object type="DiagramEntitySetting" id="28"> 285 + <field name="entity"> 286 + <object ref="7"/> 287 + </field> 288 + <field name="location"> 289 + <object type="Coordinate" id="29"> 290 + <field name="x">12</field> 291 + <field name="y">300</field> 292 + </object> 293 + </field> 294 + </object> 295 + 296 + <object type="DiagramEntitySetting" id="30"> 297 + <field name="entity"> 298 + <object ref="6"/> 299 + </field> 300 + <field name="location"> 301 + <object type="Coordinate" id="31"> 302 + <field name="x">25</field> 303 + <field name="y">208</field> 304 + </object> 305 + </field> 306 + </object> 307 + 308 + <object type="DiagramEntitySetting" id="32"> 309 + <field name="entity"> 310 + <object ref="21"/> 311 + </field> 312 + <field name="location"> 313 + <object type="Coordinate" id="33"> 314 + <field name="x">176</field> 315 + <field name="y">251</field> 316 + </object> 317 + </field> 318 + </object> 319 + 320 + <object type="DiagramEntitySetting" id="34"> 321 + <field name="entity"> 322 + <object type="Scenario" id="35"> 323 + <base type="Entity"> 324 + <field name="name">Partner selection scenario</field> 325 + <field name="description">The process which handles the partern selection phase</field> 326 + <field name="uniqueId">12</field> 327 + <field name="connectTo"><list> 328 + <object type="Action" id="36"> 329 + <base type="Interaction"> 330 + <base type="Entity"> 331 + <field name="name">Score declaration</field> 332 + <field name="uniqueId">13</field> 333 + <field name="connectTo"><list> 334 + <object ref="5"/> 335 + </list> 336 + </field> 337 + </base> 338 + 339 + </base> 340 + 341 + </object> 342 + </list> 343 + </field> 344 + </base> 345 + 346 + <field name="context"></field> 347 + <field name="variation"></field> 348 + <field name="linkedGoals"><list> 349 + <object type="Goal" id="37"> 350 + <base type="Entity"> 351 + <field name="name">Partner selection</field> 352 + <field name="uniqueId">11</field> 353 + </base> 354 + 355 + </object> 356 + </list> 357 + </field> 358 + </object> 359 + </field> 360 + <field name="location"> 361 + <object type="Coordinate" id="38"> 362 + <field name="x">278</field> 363 + <field name="y">322</field> 364 + </object> 365 + </field> 366 + </object> 367 + 368 + <object type="DiagramEntitySetting" id="39"> 369 + <field name="entity"> 370 + <object ref="36"/> 371 + </field> 372 + <field name="location"> 373 + <object type="Coordinate" id="40"> 374 + <field name="x">306</field> 375 + <field name="y">219</field> 376 + </object> 377 + </field> 378 + </object> 379 + 380 + <object type="DiagramEntitySetting" id="41"> 381 + <field name="entity"> 382 + <object ref="9"/> 383 + </field> 384 + <field name="location"> 385 + <object type="Coordinate" id="42"> 386 + <field name="x">478</field> 387 + <field name="y">356</field> 388 + </object> 389 + </field> 390 + </object> 391 + 392 + <object type="DiagramEntitySetting" id="43"> 393 + <field name="entity"> 394 + <object ref="12"/> 395 + </field> 396 + <field name="location"> 397 + <object type="Coordinate" id="44"> 398 + <field name="x">610</field> 399 + <field name="y">258</field> 400 + </object> 401 + </field> 402 + </object> 403 + 404 + <object type="DiagramEntitySetting" id="45"> 405 + <field name="entity"> 406 + <object ref="10"/> 407 + </field> 408 + <field name="location"> 409 + <object type="Coordinate" id="46"> 410 + <field name="x">649</field> 411 + <field name="y">414</field> 412 + </object> 413 + </field> 414 + </object> 415 + 416 + <object type="DiagramEntitySetting" id="47"> 417 + <field name="entity"> 418 + <object ref="13"/> 419 + </field> 420 + <field name="location"> 421 + <object type="Coordinate" id="48"> 422 + <field name="x">750</field> 423 + <field name="y">219</field> 424 + </object> 425 + </field> 426 + </object> 427 + 428 + <object type="DiagramEntitySetting" id="49"> 429 + <field name="entity"> 430 + <object ref="11"/> 431 + </field> 432 + <field name="location"> 433 + <object type="Coordinate" id="50"> 434 + <field name="x">552</field> 435 + <field name="y">306</field> 436 + </object> 437 + </field> 438 + </object> 439 + </list> 440 + </field> 441 + </object> 442 + </list> 443 + </field> 444 + <field name="model"> 445 + <object type="PrometheusModelData" id="51"> 446 + <field name="projectData"> 447 + <object ref="1"/> 448 + </field> 449 + <field name="actions"><list> 450 + <object ref="21"/> 451 + 452 + <object ref="36"/> 453 + 454 + <object ref="11"/> 455 + 456 + <object ref="13"/> 457 + </list> 458 + </field> 459 + <field name="goals"><list> 460 + <object ref="22"/> 461 + 462 + <object ref="26"/> 463 + 464 + <object ref="8"/> 465 + 466 + <object ref="37"/> 467 + 468 + <object ref="14"/> 469 + </list> 470 + </field> 471 + <field name="percepts"><list> 472 + <object ref="6"/> 473 + 474 + <object ref="9"/> 475 + 476 + <object ref="12"/> 477 + </list> 478 + </field> 479 + <field name="scenarios"><list> 480 + <object ref="20"/> 481 + 482 + <object ref="25"/> 483 + 484 + <object ref="7"/> 485 + 486 + <object ref="35"/> 487 + 488 + <object ref="10"/> 489 + </list> 490 + </field> 491 + <field name="actors"><list> 492 + <object ref="5"/> 493 + 494 + <object ref="17"/> 495 + </list> 496 + </field> 497 + <field name="systemOverviewDiagramData"> 498 + <object type="SystemOverviewDiagramData" id="52"> 499 + </object> 500 + </field> 501 + <field name="rolesDiagramData"> 502 + <object type="RolesDiagramData" id="53"> 503 + </object> 504 + </field> 505 + <field name="analysisOverviewDiagramData"> 506 + <object type="AnalysisOverviewDiagramData" id="54"> 507 + <field name="entities"><list> 508 + <object ref="5"/> 509 + 510 + <object ref="20"/> 511 + 512 + <object ref="7"/> 513 + 514 + <object ref="6"/> 515 + 516 + <object ref="21"/> 517 + 518 + <object ref="35"/> 519 + 520 + <object ref="36"/> 521 + 522 + <object ref="9"/> 523 + 524 + <object ref="10"/> 525 + 526 + <object ref="12"/> 527 + 528 + <object ref="11"/> 529 + 530 + <object ref="13"/> 531 + </list> 532 + </field> 533 + </object> 534 + </field> 535 + <field name="actorsDiagramNotes"> 536 + </field> 537 + <field name="scenariosDiagramData"> 538 + <object type="ScenariosDiagramData" id="55"> 539 + </object> 540 + </field> 541 + <field name="goalOverviewDiagramData"> 542 + <object type="GoalOverviewDiagramData" id="56"> 543 + </object> 544 + </field> 545 + <field name="dataCouplingDiagramData"> 546 + <object type="DataCouplingDiagramData" id="57"> 547 + </object> 548 + </field> 549 + <field name="agentRoleCouplingDiagramData"> 550 + <object type="AgentRoleCouplingDiagramData" id="58"> 551 + </object> 552 + </field> 553 + <field name="agentOverviewDiagramData"> 554 + <object type="AgentOverviewDiagramData" id="59"> 555 + </object> 556 + </field> 557 + <field name="capabilityOverviewDiagramData"> 558 + <object type="CapabilityOverviewDiagramData" id="60"> 559 + </object> 560 + </field> 561 + </object> 562 + </field> 563 + </object> 564 + 565 + </jacob>
ref/pd_tutorial/._.DS_Store

This is a binary file and will not be displayed.

ref/pd_tutorial/fig1.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig10.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig11.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig12.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig13.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig14.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig15.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig16.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig17.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig18.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig19.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig2.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig20.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig21.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig22.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig23.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig24.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig25.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig26.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig27.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig28.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig28.png

This is a binary file and will not be displayed.

ref/pd_tutorial/fig29.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig3.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig30.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig31.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig32.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig33.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig34.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig35.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig36.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig37.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig38.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig39.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig4.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig40.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig41.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig42.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig43.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig43.png

This is a binary file and will not be displayed.

ref/pd_tutorial/fig44.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig45.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig46.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig47.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig48.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig49.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig5.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig50.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig6.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig7.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig8.jpg

This is a binary file and will not be displayed.

ref/pd_tutorial/fig9.jpg

This is a binary file and will not be displayed.

+8010
ref/pd_tutorial/meteorology v0.3.pd
··· 1 + <?xml version="1.0"?> 2 + 3 + <jacob version="3.0"> 4 + 5 + <object type="PrometheusProject" id="0"> 6 + <field name="projectData"> 7 + <object type="ProjectData" id="1"> 8 + <field name="name">default</field> 9 + <field name="fileNameLastSavedAs">Meteorology v0.3.pd</field> 10 + <field name="lastCodeGenerationPath">C:\Documents and Settings\Dave\My Documents\MeterologyCode</field> 11 + <field name="filePathLastSavedIn">C:\Documents and Settings\Dave\My Documents</field> 12 + <field name="openedAs">C:\Documents and Settings\Dave\My Documents\Meteorology v0.3.pd</field> 13 + <field name="applicationVersion">3.2c</field> 14 + </object> 15 + </field> 16 + <field name="diagramSettings"><list> 17 + <object type="DiagramSettings" id="2"> 18 + <field name="diagramId"> 19 + <object type="DiagramId" id="3"> 20 + <field name="stringId">au.edu.rmit.cs.prometheus.gui.diagram.capabilityoverview.CapabilityOverviewDiagramModel#57</field> 21 + </object> 22 + </field> 23 + <field name="entitySettings"><list> 24 + <object type="DiagramEntitySetting" id="4"> 25 + <field name="entity"> 26 + <object type="DataConnection" id="5"> 27 + <base type="Entity"> 28 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=70&gt;</field> 29 + <field name="uniqueId">70</field> 30 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=70&gt;</field> 31 + </base> 32 + 33 + <field name="type"> 34 + <object type="Data" id="6"> 35 + <base type="Entity"> 36 + <field name="uniqueId">46</field> 37 + <field name="codeName">warnings</field> 38 + </base> 39 + 40 + <field name="connections"><list> 41 + <object type="DataConnection" id="7"> 42 + <base type="Entity"> 43 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=68&gt;</field> 44 + <field name="uniqueId">68</field> 45 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=68&gt;</field> 46 + </base> 47 + 48 + <field name="type"> 49 + <object ref="6"/> 50 + </field> 51 + <field name="writingEntities"><list> 52 + <object type="Capability" id="8"> 53 + <base type="Entity"> 54 + <field name="name">RecogniseHighWindCap</field> 55 + <field name="description">Capability to recognise a high wind situation and create an appropriate warning. See notes for descriptions of high wind situations according to the specifications </field> 56 + <field name="uniqueId">55</field> 57 + <field name="codeName">RecogniseHighWindCap</field> 58 + </base> 59 + 60 + <field name="goals"><list> 61 + <object type="Goal" id="9"> 62 + <base type="Entity"> 63 + <field name="name">Recognise high wind situation</field> 64 + <field name="description">Check to see if there is a high wind situation likely at an airport sometime in the next 6 hours.</field> 65 + <field name="uniqueId">22</field> 66 + <field name="codeName">Check for high wind situation</field> 67 + </base> 68 + 69 + <field name="subGoals"><list> 70 + <object type="Goal" id="10"> 71 + <base type="Entity"> 72 + <field name="name">Check high wind</field> 73 + <field name="description">Check to see if the wind strength in a forecast is greater than 30 knots</field> 74 + <field name="uniqueId">26</field> 75 + <field name="codeName">Check situation 1</field> 76 + </base> 77 + 78 + </object> 79 + 80 + <object type="Goal" id="11"> 81 + <base type="Entity"> 82 + <field name="name">Check really unexpected, increasing wind</field> 83 + <field name="description">Check to see if the current wind strength is greater than 5 knots, is significantly higher than forecast, and is increasing fairly rapidly</field> 84 + <field name="uniqueId">27</field> 85 + <field name="codeName">Check situation 2</field> 86 + </base> 87 + 88 + </object> 89 + 90 + <object type="Goal" id="12"> 91 + <base type="Entity"> 92 + <field name="name">Check high, unexpected, increasing wind</field> 93 + <field name="description">Check to see if the wind strength is increasing, is over 20 knots and is higher than forecast.</field> 94 + <field name="uniqueId">28</field> 95 + <field name="codeName">Check situation 3</field> 96 + </base> 97 + 98 + </object> 99 + </list> 100 + </field> 101 + <field name="orRefined">:true</field> 102 + </object> 103 + 104 + <object type="Goal" id="13"> 105 + <base type="Entity"> 106 + <field name="name">Create Warning</field> 107 + <field name="description">Create a relevant warning with appropriate data.</field> 108 + <field name="uniqueId">260</field> 109 + </base> 110 + 111 + </object> 112 + </list> 113 + </field> 114 + <field name="processes">Recognise high wind situation 115 + Create warning</field> 116 + <field name="notes">A high wind situation is considered if any of the following are true: 117 + - the current wind strength is greater than 5 knots, is significantly higher than forecast, and is increasing fairly rapidly 118 + -the wind strength in a forecast is greater than 30 knots 119 + -the wind strength is increasing, is over 20 knots and is higher than forecast. 120 + </field> 121 + <field name="includedPlans"><list> 122 + <object type="Plan" id="14"> 123 + <base type="Entity"> 124 + <field name="name">ReportReallyHighWindP</field> 125 + <field name="description">Reports a high wind warning</field> 126 + <field name="uniqueId">90</field> 127 + <field name="codeName">ReportReallyHighWindP</field> 128 + </base> 129 + 130 + <field name="triggers"><list> 131 + <object type="MessageDistributionPair" id="15"> 132 + <base type="Entity"> 133 + <field name="name">planMessagePair-180</field> 134 + <field name="uniqueId">180</field> 135 + <field name="codeName">planMessagePair-180</field> 136 + </base> 137 + 138 + <field name="type"> 139 + <object type="Message" id="16"> 140 + <base type="Interaction"> 141 + <base type="Entity"> 142 + <field name="name">NewDataE</field> 143 + <field name="description">InferenceGoalEvent autoposted by AWS_Readings beliefset or Forecast beliefset when new data is added.</field> 144 + <field name="uniqueId">77</field> 145 + <field name="codeName">NewDataE</field> 146 + </base> 147 + 148 + </base> 149 + 150 + <field name="distribution"><list> 151 + <object type="MessageDistributionPair" id="17"> 152 + <base type="Entity"> 153 + <field name="name">agentDiagramPair-78</field> 154 + <field name="uniqueId">78</field> 155 + <field name="codeName">agentDiagramPair-78</field> 156 + </base> 157 + 158 + <field name="type"> 159 + <object ref="16"/> 160 + </field> 161 + <field name="toEntities"><list> 162 + <object ref="8"/> 163 + 164 + <object type="Capability" id="18"> 165 + <base type="Entity"> 166 + <field name="name">RecogniseForecastDiscrepancyCap</field> 167 + <field name="description">The capability to recognise when there is an alertable situation due to a significant discrepancy between the forecast conditions and actual conditions and create a relevant warning. See notes for description of forecast discrepancy.</field> 168 + <field name="uniqueId">57</field> 169 + <field name="codeName">RecogniseForecastDiscrepancyCap</field> 170 + </base> 171 + 172 + <field name="goals"><list> 173 + <object type="Goal" id="19"> 174 + <base type="Entity"> 175 + <field name="name">Recognise forecast discrepency</field> 176 + <field name="description">Check to see if there is a (serious) discrepancy between the forecast data and the actual data at the current time.</field> 177 + <field name="uniqueId">21</field> 178 + <field name="codeName">Recognise forecast discrepency</field> 179 + </base> 180 + 181 + <field name="subGoals"><list> 182 + <object type="Goal" id="20"> 183 + <base type="Entity"> 184 + <field name="name">Check wind</field> 185 + <field name="description">Check to see if the forecast wind speed differs from the actual windspeed by 5 knots or more.</field> 186 + <field name="uniqueId">23</field> 187 + <field name="codeName">Check wind</field> 188 + </base> 189 + 190 + </object> 191 + 192 + <object type="Goal" id="21"> 193 + <base type="Entity"> 194 + <field name="name">Check fog</field> 195 + <field name="description">Check to see if the forecast for fog/no fog differs from the actual data</field> 196 + <field name="uniqueId">24</field> 197 + <field name="codeName">Check fog</field> 198 + </base> 199 + 200 + </object> 201 + </list> 202 + </field> 203 + <field name="orRefined">:true</field> 204 + </object> 205 + 206 + <object ref="13"/> 207 + </list> 208 + </field> 209 + <field name="processes">Recognise forecast discrepancy 210 + Create warning</field> 211 + <field name="notes">A forecast discrepancy is considered to be one of the following: 212 + - A discrepancy between the forecast for fog and actual presence 213 + - A difference between forecast wind and actual wind of 5 knots or more 214 + - A difference between the forecast trend and the actual trend</field> 215 + <field name="includedPlans"><list> 216 + <object type="Plan" id="22"> 217 + <base type="Entity"> 218 + <field name="name">ReportFogDiscrepancyP</field> 219 + <field name="description">Creates a Forecast discrepancy warning</field> 220 + <field name="uniqueId">129</field> 221 + <field name="codeName">ReportFogDiscrepancyP</field> 222 + </base> 223 + 224 + <field name="triggers"><list> 225 + <object type="MessageDistributionPair" id="23"> 226 + <base type="Entity"> 227 + <field name="name">planMessagePair-187</field> 228 + <field name="uniqueId">187</field> 229 + <field name="codeName">planMessagePair-187</field> 230 + </base> 231 + 232 + <field name="type"> 233 + <object ref="16"/> 234 + </field> 235 + <field name="parentDistributionPairs"><list> 236 + <object type="MessageDistributionPair" id="24"> 237 + <base type="Entity"> 238 + <field name="name">capabilityMessagePair-80</field> 239 + <field name="uniqueId">80</field> 240 + <field name="codeName">capabilityMessagePair-80</field> 241 + </base> 242 + 243 + <field name="type"> 244 + <object ref="16"/> 245 + </field> 246 + <field name="toEntities"><list> 247 + <object ref="22"/> 248 + 249 + <object type="Plan" id="25"> 250 + <base type="Entity"> 251 + <field name="name">ReportWindDiscrepancyP</field> 252 + <field name="description">Creates a Forecast discrepancy warning</field> 253 + <field name="uniqueId">135</field> 254 + <field name="codeName">ReportWindDiscrepancyP</field> 255 + </base> 256 + 257 + <field name="triggers"><list> 258 + <object type="MessageDistributionPair" id="26"> 259 + <base type="Entity"> 260 + <field name="name">planMessagePair-188</field> 261 + <field name="uniqueId">188</field> 262 + <field name="codeName">planMessagePair-188</field> 263 + </base> 264 + 265 + <field name="type"> 266 + <object ref="16"/> 267 + </field> 268 + <field name="parentDistributionPairs"><list> 269 + <object ref="24"/> 270 + </list> 271 + </field> 272 + <field name="owner"> 273 + <object ref="25"/> 274 + </field> 275 + </object> 276 + </list> 277 + </field> 278 + <field name="goals"><list> 279 + <object ref="20"/> 280 + 281 + <object ref="13"/> 282 + </list> 283 + </field> 284 + <field name="outgoingMessages"><list> 285 + <object type="MessageDistributionPair" id="27"> 286 + <base type="Entity"> 287 + <field name="name">planMessagePair-216</field> 288 + <field name="uniqueId">216</field> 289 + <field name="codeName">planMessagePair-216</field> 290 + </base> 291 + 292 + <field name="type"> 293 + <object type="Message" id="28"> 294 + <base type="Interaction"> 295 + <base type="Entity"> 296 + <field name="name">NewWarningE</field> 297 + <field name="description">Posted when there is an alertable situation at an airport. Contains information relevant to the warning.</field> 298 + <field name="uniqueId">144</field> 299 + <field name="codeName">NewWarningE</field> 300 + </base> 301 + 302 + </base> 303 + 304 + <field name="distribution"><list> 305 + <object type="MessageDistributionPair" id="29"> 306 + <base type="Entity"> 307 + <field name="name">capabilityDiagramPair-145</field> 308 + <field name="uniqueId">145</field> 309 + <field name="codeName">capabilityDiagramPair-145</field> 310 + </base> 311 + 312 + <field name="type"> 313 + <object ref="28"/> 314 + </field> 315 + <field name="toEntities"><list> 316 + <object type="Plan" id="30"> 317 + <base type="Entity"> 318 + <field name="name">PostWarningP</field> 319 + <field name="description">Sends warnings on to relevant users</field> 320 + <field name="uniqueId">143</field> 321 + <field name="codeName">PostWarningP</field> 322 + </base> 323 + 324 + <field name="goals"><list> 325 + <object ref="13"/> 326 + </list> 327 + </field> 328 + <field name="incomingMessages"><list> 329 + <object type="MessageDistributionPair" id="31"> 330 + <base type="Entity"> 331 + <field name="name">planMessagePair-146</field> 332 + <field name="uniqueId">146</field> 333 + <field name="codeName">planMessagePair-146</field> 334 + </base> 335 + 336 + <field name="type"> 337 + <object ref="28"/> 338 + </field> 339 + <field name="parentDistributionPairs"><list> 340 + <object ref="29"/> 341 + 342 + <object type="MessageDistributionPair" id="32"> 343 + <base type="Entity"> 344 + <field name="name">agentDiagramPair-196</field> 345 + <field name="uniqueId">196</field> 346 + <field name="codeName">agentDiagramPair-196</field> 347 + </base> 348 + 349 + <field name="type"> 350 + <object ref="28"/> 351 + </field> 352 + <field name="toEntities"><list> 353 + <object ref="30"/> 354 + </list> 355 + </field> 356 + <field name="fromEntities"><list> 357 + <object ref="8"/> 358 + 359 + <object ref="18"/> 360 + 361 + <object type="Capability" id="33"> 362 + <base type="Entity"> 363 + <field name="name">RecogniseImmediateChangeCap</field> 364 + <field name="description">Capability to recognise when there is an alertable situation due to a significant change in the immediate forecast and create a relevant warning. See notes for description of significant change.</field> 365 + <field name="uniqueId">56</field> 366 + <field name="codeName">RecogniseImmediateChangeCap</field> 367 + </base> 368 + 369 + <field name="goals"><list> 370 + <object type="Goal" id="34"> 371 + <base type="Entity"> 372 + <field name="name">Recognise change in immediate forecast</field> 373 + <field name="description">Check to see if there is a significant difference between the forecast situation for the next 2 hours and what was previously forecast.</field> 374 + <field name="uniqueId">20</field> 375 + <field name="codeName">Recognise change in immediate forecast</field> 376 + </base> 377 + 378 + <field name="subGoals"><list> 379 + <object type="Goal" id="35"> 380 + <base type="Entity"> 381 + <field name="name">Check high wind change</field> 382 + <field name="description">Check to see if there is a change in the forecast for a high wind condition (30 knots or higher)</field> 383 + <field name="uniqueId">29</field> 384 + <field name="codeName">Check high wind change</field> 385 + </base> 386 + 387 + </object> 388 + 389 + <object type="Goal" id="36"> 390 + <base type="Entity"> 391 + <field name="name">Check fog change</field> 392 + <field name="description">Check to see if there is a change in the appearance of fog 393 + </field> 394 + <field name="uniqueId">30</field> 395 + <field name="codeName">Check fog change</field> 396 + </base> 397 + 398 + </object> 399 + 400 + <object type="Goal" id="37"> 401 + <base type="Entity"> 402 + <field name="name">Check temp below 0</field> 403 + <field name="description">Check to see if there is a change in the forecast situation for the temperature being below freezing</field> 404 + <field name="uniqueId">31</field> 405 + <field name="codeName">Check temp below 0</field> 406 + </base> 407 + 408 + </object> 409 + 410 + <object type="Goal" id="38"> 411 + <base type="Entity"> 412 + <field name="name">Check high rain</field> 413 + <field name="description">Check for a change in the high rainfall situation (over 10cm)</field> 414 + <field name="uniqueId">32</field> 415 + <field name="codeName">Check high rain</field> 416 + </base> 417 + 418 + </object> 419 + </list> 420 + </field> 421 + <field name="orRefined">:true</field> 422 + </object> 423 + 424 + <object ref="13"/> 425 + </list> 426 + </field> 427 + <field name="processes"></field> 428 + <field name="notes">A significant change to the forecast is considered if there is a change in the forecast for the presence of: 429 + - winds over 20 knots 430 + - rain over 10cm 431 + - fog 432 + - below zero temperatures</field> 433 + <field name="includedPlans"><list> 434 + <object type="Plan" id="39"> 435 + <base type="Entity"> 436 + <field name="name">ReportHighWindChangeP</field> 437 + <field name="description">Creates an immediate forecast change warning</field> 438 + <field name="uniqueId">107</field> 439 + <field name="codeName">ReportHighWindChangeP</field> 440 + </base> 441 + 442 + <field name="goals"><list> 443 + <object ref="35"/> 444 + 445 + <object ref="13"/> 446 + </list> 447 + </field> 448 + <field name="incomingMessages"><list> 449 + <object type="MessageDistributionPair" id="40"> 450 + <base type="Entity"> 451 + <field name="name">planMessagePair-183</field> 452 + <field name="uniqueId">183</field> 453 + <field name="codeName">planMessagePair-183</field> 454 + </base> 455 + 456 + <field name="type"> 457 + <object ref="16"/> 458 + </field> 459 + <field name="parentDistributionPairs"><list> 460 + <object type="MessageDistributionPair" id="41"> 461 + <base type="Entity"> 462 + <field name="name">capabilityMessagePair-81</field> 463 + <field name="uniqueId">81</field> 464 + <field name="codeName">capabilityMessagePair-81</field> 465 + </base> 466 + 467 + <field name="type"> 468 + <object ref="16"/> 469 + </field> 470 + <field name="toEntities"><list> 471 + <object ref="39"/> 472 + 473 + <object type="Plan" id="42"> 474 + <base type="Entity"> 475 + <field name="name">ReportFogChangeP</field> 476 + <field name="description">Creates a immediate change in forecast warning</field> 477 + <field name="uniqueId">112</field> 478 + <field name="codeName">ReportFogChangeP</field> 479 + </base> 480 + 481 + <field name="triggers"><list> 482 + <object type="MessageDistributionPair" id="43"> 483 + <base type="Entity"> 484 + <field name="name">planMessagePair-184</field> 485 + <field name="uniqueId">184</field> 486 + <field name="codeName">planMessagePair-184</field> 487 + </base> 488 + 489 + <field name="type"> 490 + <object ref="16"/> 491 + </field> 492 + <field name="parentDistributionPairs"><list> 493 + <object ref="41"/> 494 + </list> 495 + </field> 496 + <field name="owner"> 497 + <object ref="42"/> 498 + </field> 499 + </object> 500 + </list> 501 + </field> 502 + <field name="goals"><list> 503 + <object ref="36"/> 504 + </list> 505 + </field> 506 + <field name="outgoingMessages"><list> 507 + <object type="MessageDistributionPair" id="44"> 508 + <base type="Entity"> 509 + <field name="name">planMessagePair-212</field> 510 + <field name="uniqueId">212</field> 511 + <field name="codeName">planMessagePair-212</field> 512 + </base> 513 + 514 + <field name="type"> 515 + <object ref="28"/> 516 + </field> 517 + <field name="parentDistributionPairs"><list> 518 + <object type="MessageDistributionPair" id="45"> 519 + <base type="Entity"> 520 + <field name="name">capabilityMessagePair-207</field> 521 + <field name="uniqueId">207</field> 522 + <field name="codeName">capabilityMessagePair-207</field> 523 + </base> 524 + 525 + <field name="type"> 526 + <object ref="28"/> 527 + </field> 528 + <field name="fromEntities"><list> 529 + <object ref="39"/> 530 + 531 + <object ref="42"/> 532 + 533 + <object type="Plan" id="46"> 534 + <base type="Entity"> 535 + <field name="name">ReportTempBelowZeroChangeP</field> 536 + <field name="description">Creates a immediate change in forecast warning 537 + </field> 538 + <field name="uniqueId">121</field> 539 + <field name="codeName">ReportTempBelowZeroChangeP</field> 540 + </base> 541 + 542 + <field name="triggers"><list> 543 + <object type="MessageDistributionPair" id="47"> 544 + <base type="Entity"> 545 + <field name="name">planMessagePair-185</field> 546 + <field name="uniqueId">185</field> 547 + <field name="codeName">planMessagePair-185</field> 548 + </base> 549 + 550 + <field name="type"> 551 + <object ref="16"/> 552 + </field> 553 + <field name="parentDistributionPairs"><list> 554 + <object ref="41"/> 555 + </list> 556 + </field> 557 + <field name="owner"> 558 + <object ref="46"/> 559 + </field> 560 + </object> 561 + </list> 562 + </field> 563 + <field name="goals"><list> 564 + <object ref="37"/> 565 + 566 + <object ref="13"/> 567 + </list> 568 + </field> 569 + <field name="outgoingMessages"><list> 570 + <object type="MessageDistributionPair" id="48"> 571 + <base type="Entity"> 572 + <field name="name">planMessagePair-213</field> 573 + <field name="uniqueId">213</field> 574 + <field name="codeName">planMessagePair-213</field> 575 + </base> 576 + 577 + <field name="type"> 578 + <object ref="28"/> 579 + </field> 580 + <field name="parentDistributionPairs"><list> 581 + <object ref="45"/> 582 + </list> 583 + </field> 584 + <field name="owner"> 585 + <object ref="46"/> 586 + </field> 587 + </object> 588 + </list> 589 + </field> 590 + <field name="data"><list> 591 + <object type="DataConnection" id="49"> 592 + <base type="Entity"> 593 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=65&gt;</field> 594 + <field name="uniqueId">65</field> 595 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=65&gt;</field> 596 + </base> 597 + 598 + <field name="type"> 599 + <object type="Data" id="50"> 600 + <base type="Entity"> 601 + <field name="name">forecasts</field> 602 + <field name="description">Beliefset to store both the current forecasts and the previous set of forecasts for a given airport. There will be one such beliefset per AirportAgent and thus per airport.</field> 603 + <field name="uniqueId">45</field> 604 + <field name="codeName">forecasts</field> 605 + </base> 606 + 607 + <field name="dataType">Forecasts</field> 608 + <field name="includedFields">Time - Date representing the time of the forecast 609 + old - Boolean representing true if this is the previous forecast 610 + temp - Double, in degrees celsius 611 + wind - Double, in knots 612 + rain - Double, in cm 613 + fog - Boolean 614 + 615 + Queries: 616 + - Query to access each variable for both current and previous forecast 617 + - Query to move new forecast to old, so that new forecast can be written.</field> 618 + <field name="readBy"><list> 619 + <object ref="8"/> 620 + 621 + <object ref="33"/> 622 + 623 + <object ref="18"/> 624 + </list> 625 + </field> 626 + <field name="initialisation">Datastore will start empty, and be written when first data arrives</field> 627 + <field name="writtenWhen">Forecasts arrive 628 + Checking for alertable situation</field> 629 + <field name="connections"><list> 630 + <object type="DataConnection" id="51"> 631 + <base type="Entity"> 632 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=59&gt;</field> 633 + <field name="uniqueId">59</field> 634 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=59&gt;</field> 635 + </base> 636 + 637 + <field name="type"> 638 + <object ref="50"/> 639 + </field> 640 + <field name="readingEntities"><list> 641 + <object ref="8"/> 642 + 643 + <object ref="33"/> 644 + 645 + <object ref="18"/> 646 + </list> 647 + </field> 648 + <field name="writingEntities"><list> 649 + <object type="Plan" id="52"> 650 + <base type="Entity"> 651 + <field name="name">UpdateTAFP</field> 652 + <field name="description">Handle forecast data by writing to beliefset</field> 653 + <field name="uniqueId">85</field> 654 + <field name="codeName">UpdateTAFP</field> 655 + </base> 656 + 657 + <field name="triggers"><list> 658 + <object type="MessageDistributionPair" id="53"> 659 + <base type="Entity"> 660 + <field name="name">planMessagePair-179</field> 661 + <field name="uniqueId">179</field> 662 + <field name="codeName">planMessagePair-179</field> 663 + </base> 664 + 665 + <field name="type"> 666 + <object type="Message" id="54"> 667 + <base type="Interaction"> 668 + <base type="Entity"> 669 + <field name="name">ForecastE</field> 670 + <field name="description">Set of predicted weather for the next 12 hours for the given airport</field> 671 + <field name="uniqueId">172</field> 672 + <field name="codeName">ForecastE</field> 673 + </base> 674 + 675 + </base> 676 + 677 + <field name="distribution"><list> 678 + <object type="MessageDistributionPair" id="55"> 679 + <base type="Entity"> 680 + <field name="name">systemDiagramPair-173</field> 681 + <field name="uniqueId">173</field> 682 + <field name="codeName">systemDiagramPair-173</field> 683 + </base> 684 + 685 + <field name="type"> 686 + <object ref="54"/> 687 + </field> 688 + <field name="toEntities"><list> 689 + <object type="Agent" id="56"> 690 + <base type="Entity"> 691 + <field name="name">AirportAgent</field> 692 + <field name="description">An agent to handle the recognition of any alertable situations at a specific airport. There will be one AirportAgent per airport in the system</field> 693 + <field name="uniqueId">47</field> 694 + <field name="codeName">AirportAgent</field> 695 + </base> 696 + 697 + <field name="lifetime">The same period of time that the associated airport is part of the system</field> 698 + <field name="initialisation">At initialization the airport agent must subscribe to receive data from the associated sensor via the external action subscribeAWSSourceAgent</field> 699 + <field name="demise">Subscription to sensor should be removed so that another agent can connect to it in the future.</field> 700 + <field name="includedCapabilities"><list> 701 + <object type="Capability" id="57"> 702 + <base type="Entity"> 703 + <field name="name">ObtainAWSCap</field> 704 + <field name="description">Capability to receive and appropriately store all incoming AWS data. This includes the ability to manually request data from the sensor.</field> 705 + <field name="uniqueId">53</field> 706 + <field name="codeName">ObtainAWSCap</field> 707 + </base> 708 + 709 + <field name="goals"><list> 710 + <object type="Goal" id="58"> 711 + <base type="Entity"> 712 + <field name="name">Update AWS beliefs</field> 713 + <field name="description">Update the beliefsets with most up to date data</field> 714 + <field name="uniqueId">16</field> 715 + <field name="codeName">Update AWS beliefs</field> 716 + </base> 717 + 718 + </object> 719 + 720 + <object type="Goal" id="59"> 721 + <base type="Entity"> 722 + <field name="name">Recieve AWS data</field> 723 + <field name="description">Recieve the data from the airport</field> 724 + <field name="uniqueId">15</field> 725 + <field name="codeName">Recieve AWS data</field> 726 + </base> 727 + 728 + </object> 729 + </list> 730 + </field> 731 + <field name="processes">Request new data 732 + Receive data and process into appropriate format 733 + Store in datastore</field> 734 + <field name="notes"></field> 735 + <field name="actions"><list> 736 + <object type="Action" id="60"> 737 + <base type="Interaction"> 738 + <base type="Entity"> 739 + <field name="name">Request Data</field> 740 + <field name="description">A request sent from the system to an Airport Sensor requesting up-to-date data.</field> 741 + <field name="uniqueId">4</field> 742 + <field name="connectTo"><list> 743 + <object type="Actor" id="61"> 744 + <base type="Entity"> 745 + <field name="name">Airport Sensor</field> 746 + <field name="description">The automatic weather station which makes physical measurements of the current weather conditions.</field> 747 + <field name="uniqueId">2</field> 748 + <field name="connectTo"><list> 749 + <object type="Percept" id="62"> 750 + <base type="Interaction"> 751 + <base type="Entity"> 752 + <field name="name">AWS DataE</field> 753 + <field name="description">AWS readings from the simulator which contain up to date readings for the airport</field> 754 + <field name="uniqueId">7</field> 755 + <field name="connectTo"><list> 756 + <object type="Scenario" id="63"> 757 + <base type="Entity"> 758 + <field name="name">Obtain Data Scenario scenario</field> 759 + <field name="description">This high-level scenario covers acquistion of all data from both the Automatic Weather Stations and the Forecaster</field> 760 + <field name="uniqueId">6</field> 761 + <field name="connectTo"><list> 762 + <object ref="60"/> 763 + 764 + <object type="Action" id="64"> 765 + <base type="Interaction"> 766 + <base type="Entity"> 767 + <field name="name">subscribeAWSSourceAgent</field> 768 + <field name="description">This external action subscribes the system to receive AWS readings from a sensor.</field> 769 + <field name="uniqueId">227</field> 770 + <field name="connectTo"><list> 771 + <object ref="61"/> 772 + </list> 773 + </field> 774 + </base> 775 + 776 + </base> 777 + 778 + <field name="parameters">None</field> 779 + <field name="durationDescription">N/A</field> 780 + <field name="failureNotificationDescription">N/A</field> 781 + <field name="partialChange">N/A</field> 782 + <field name="sideEffects">N/A</field> 783 + <field name="agentsPerforming"><list> 784 + <object type="Agent" id="65"> 785 + <base type="Entity"> 786 + <field name="uniqueId">226</field> 787 + </base> 788 + 789 + </object> 790 + 791 + <object ref="56"/> 792 + </list> 793 + </field> 794 + <field name="protocols"><list> 795 + <object type="Protocol" id="66"> 796 + <base type="Entity"> 797 + <field name="name">Data retrieval</field> 798 + <field name="description">Covers the protocol between ForecasterAgent and AirportAgent when new Forecast data arrives</field> 799 + <field name="uniqueId">224</field> 800 + </base> 801 + 802 + <field name="includedMessages"><list> 803 + <object type="MessageDistributionPair" id="67"> 804 + <base type="Entity"> 805 + <field name="name">protocolMessagePair-240</field> 806 + <field name="uniqueId">240</field> 807 + </base> 808 + 809 + <field name="type"> 810 + <object ref="54"/> 811 + </field> 812 + <field name="toEntities"><list> 813 + <object ref="56"/> 814 + </list> 815 + </field> 816 + <field name="fromEntities"><list> 817 + <object type="Agent" id="68"> 818 + <base type="Entity"> 819 + <field name="name">ForecasterAgent</field> 820 + <field name="description">An agent used to accept incoming forecasts and split them into different airports. There will only be one forecast agent in any system.</field> 821 + <field name="uniqueId">171</field> 822 + <field name="codeName">ForecasterAgent</field> 823 + </base> 824 + 825 + <field name="cardinalityMinimum">1</field> 826 + <field name="cardinalityMaximum">1</field> 827 + <field name="lifetime">Life of the system</field> 828 + <field name="initialisation">Subscription must be sent to forecaster actor to receive forecasts when they are available</field> 829 + <field name="demise">Subscription should be removed cleanly.</field> 830 + <field name="includedPlans"><list> 831 + <object type="Plan" id="69"> 832 + <base type="Entity"> 833 + <field name="name">SendForecastsP</field> 834 + <field name="description">Handle the incoming TAF data, split and send to relevant airports</field> 835 + <field name="uniqueId">177</field> 836 + <field name="codeName">SendForecastsP</field> 837 + </base> 838 + 839 + <field name="triggers"><list> 840 + <object type="Percept" id="70"> 841 + <base type="Interaction"> 842 + <base type="Entity"> 843 + <field name="name">TAF dataE</field> 844 + <field name="description">Incoming Forecasts from an external forecaster. </field> 845 + <field name="uniqueId">8</field> 846 + <field name="connectTo"><list> 847 + <object ref="63"/> 848 + </list> 849 + </field> 850 + <field name="codeName">TAF dataE</field> 851 + </base> 852 + 853 + </base> 854 + 855 + <field name="source">Forecaster</field> 856 + <field name="informationCarried">Forecasts for all airports for the next 12 hours</field> 857 + <field name="knowledgeUpdated"></field> 858 + <field name="processing"></field> 859 + <field name="frequency">Quarter hourly</field> 860 + <field name="agentsResponding"><list> 861 + <object ref="68"/> 862 + </list> 863 + </field> 864 + <field name="protocols"><list> 865 + <object type="Protocol" id="71"> 866 + <base type="Entity"> 867 + <field name="name">Warnings</field> 868 + <field name="description">Covers the complete protocol between agents for subscribing a user, detecting a warning and notifying appropriate users.</field> 869 + <field name="uniqueId">229</field> 870 + </base> 871 + 872 + <field name="includedMessages"><list> 873 + <object type="MessageDistributionPair" id="72"> 874 + <base type="Entity"> 875 + <field name="name">protocolMessagePair-232</field> 876 + <field name="uniqueId">232</field> 877 + </base> 878 + 879 + <field name="type"> 880 + <object type="Message" id="73"> 881 + <base type="Interaction"> 882 + <base type="Entity"> 883 + <field name="name">SubscriptionE</field> 884 + <field name="description">Message sent from the GUIAgent to the AirportAgent indicating that the user wants to subscribe to this airport</field> 885 + <field name="uniqueId">156</field> 886 + <field name="codeName">SubscriptionE</field> 887 + </base> 888 + 889 + </base> 890 + 891 + <field name="distribution"><list> 892 + <object type="MessageDistributionPair" id="74"> 893 + <base type="Entity"> 894 + <field name="name">systemDiagramPair-157</field> 895 + <field name="uniqueId">157</field> 896 + <field name="codeName">systemDiagramPair-157</field> 897 + </base> 898 + 899 + <field name="type"> 900 + <object ref="73"/> 901 + </field> 902 + <field name="toEntities"><list> 903 + <object ref="56"/> 904 + </list> 905 + </field> 906 + <field name="fromEntities"><list> 907 + <object type="Agent" id="75"> 908 + <base type="Entity"> 909 + <field name="name">GUIAgent</field> 910 + <field name="description">Agent which handles all interactions with the user. Receives subscriptions and shows warnings. There will be one GUIAgent per user.</field> 911 + <field name="uniqueId">48</field> 912 + <field name="codeName">GUIAgent</field> 913 + </base> 914 + 915 + <field name="lifetime">Time that the associated user is connected</field> 916 + <field name="initialisation">GUI should be displayed enabling the user to subscribe to airports as necessary</field> 917 + <field name="demise">-Subscriptions to airports should be removed 918 + -GUI window should close</field> 919 + <field name="includedPlans"><list> 920 + <object type="Plan" id="76"> 921 + <base type="Entity"> 922 + <field name="name">MakeSubscriptionP</field> 923 + <field name="description">Create a subscription event and send it to the relevant airport</field> 924 + <field name="uniqueId">167</field> 925 + <field name="codeName">MakeSubscriptionP</field> 926 + </base> 927 + 928 + <field name="triggers"><list> 929 + <object type="Percept" id="77"> 930 + <base type="Interaction"> 931 + <base type="Entity"> 932 + <field name="name">Subscription from User</field> 933 + <field name="description">This is a request from a human user to subscribe to receive warnings about a particular airport.</field> 934 + <field name="uniqueId">221</field> 935 + <field name="connectTo"><list> 936 + <object type="Scenario" id="78"> 937 + <base type="Entity"> 938 + <field name="name">Subscribe User scenario</field> 939 + <field name="description">This scenario covers the necessary processes to subscribe a user to the system. First, the user must make the subscription attempt, probably via a GUI. This subscription is received by the system and stored appropriately.</field> 940 + <field name="uniqueId">149</field> 941 + <field name="codeName">Subscribe User scenario</field> 942 + </base> 943 + 944 + <field name="context"></field> 945 + <field name="steps"><list> 946 + <object type="Step" id="79"> 947 + <base type="Entity"> 948 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=263&gt;</field> 949 + <field name="description">Via a GUI terminal, the User indicates a need to subscribe to a given airport</field> 950 + <field name="uniqueId">263</field> 951 + </base> 952 + 953 + <field name="step"> 954 + <object ref="77"/> 955 + </field> 956 + </object> 957 + 958 + <object type="Step" id="80"> 959 + <base type="Entity"> 960 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=264&gt;</field> 961 + <field name="description">Creates a subscription and sends to the relevant airport</field> 962 + <field name="uniqueId">264</field> 963 + </base> 964 + 965 + <field name="step"> 966 + <object type="Goal" id="81"> 967 + <base type="Entity"> 968 + <field name="name">Make Subscription</field> 969 + <field name="description">Create a subscription and send it to the relevant airport</field> 970 + <field name="uniqueId">151</field> 971 + <field name="codeName">Make Subscription</field> 972 + </base> 973 + 974 + </object> 975 + </field> 976 + <field name="roles"><list> 977 + <object type="Role" id="82"> 978 + <base type="Entity"> 979 + <field name="name">SubscribeToAirport</field> 980 + <field name="description">Role which handles a subscription request from a user and makes the request to the appropriate airport.</field> 981 + <field name="uniqueId">154</field> 982 + <field name="codeName">SubscribeToAirport</field> 983 + </base> 984 + 985 + <field name="goals"><list> 986 + <object ref="81"/> 987 + </list> 988 + </field> 989 + <field name="percepts"><list> 990 + <object ref="77"/> 991 + </list> 992 + </field> 993 + </object> 994 + </list> 995 + </field> 996 + </object> 997 + 998 + <object type="Step" id="83"> 999 + <base type="Entity"> 1000 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=265&gt;</field> 1001 + <field name="description">Updates the agents beliefs about which users are subscribed</field> 1002 + <field name="uniqueId">265</field> 1003 + </base> 1004 + 1005 + <field name="step"> 1006 + <object type="Goal" id="84"> 1007 + <base type="Entity"> 1008 + <field name="name">Update Subscriptions Beliefs</field> 1009 + <field name="description">Adds a users subscription to a list of subscriptions 1010 + </field> 1011 + <field name="uniqueId">152</field> 1012 + <field name="codeName">Update Subscriptions Beliefset</field> 1013 + </base> 1014 + 1015 + </object> 1016 + </field> 1017 + <field name="dataWritten"><list> 1018 + <object type="Data" id="85"> 1019 + <base type="Entity"> 1020 + <field name="name">subscriptions</field> 1021 + <field name="description">Contains a list of the names of GUIUsers which are subscribed to recieve warnings from this airport. There will be one subscriptions datastore per AirportAgent and thus per airport.</field> 1022 + <field name="uniqueId">155</field> 1023 + <field name="codeName">subscriptions</field> 1024 + </base> 1025 + 1026 + <field name="dataType">Subscriptions</field> 1027 + <field name="includedFields">User</field> 1028 + <field name="initialisation">Will start empty, and be written to when first subscription is made.</field> 1029 + <field name="writtenWhen">Subscription is made by user 1030 + Determining which users to send warning to.</field> 1031 + <field name="connections"><list> 1032 + <object type="DataConnection" id="86"> 1033 + <base type="Entity"> 1034 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=161&gt;</field> 1035 + <field name="uniqueId">161</field> 1036 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=161&gt;</field> 1037 + </base> 1038 + 1039 + <field name="type"> 1040 + <object ref="85"/> 1041 + </field> 1042 + <field name="readingEntities"><list> 1043 + <object ref="30"/> 1044 + </list> 1045 + </field> 1046 + <field name="writingEntities"><list> 1047 + <object type="Plan" id="87"> 1048 + <base type="Entity"> 1049 + <field name="name">AddSubscriptionP</field> 1050 + <field name="description">Handles an incoming subscription from a user and adds this subscription to the subscriptions datastore</field> 1051 + <field name="uniqueId">165</field> 1052 + <field name="codeName">AddSubscriptionP</field> 1053 + </base> 1054 + 1055 + <field name="triggers"><list> 1056 + <object type="MessageDistributionPair" id="88"> 1057 + <base type="Entity"> 1058 + <field name="name">planMessagePair-166</field> 1059 + <field name="uniqueId">166</field> 1060 + <field name="codeName">planMessagePair-166</field> 1061 + </base> 1062 + 1063 + <field name="type"> 1064 + <object ref="73"/> 1065 + </field> 1066 + <field name="parentDistributionPairs"><list> 1067 + <object type="MessageDistributionPair" id="89"> 1068 + <base type="Entity"> 1069 + <field name="name">capabilityMessagePair-162</field> 1070 + <field name="uniqueId">162</field> 1071 + <field name="codeName">capabilityMessagePair-162</field> 1072 + </base> 1073 + 1074 + <field name="type"> 1075 + <object ref="73"/> 1076 + </field> 1077 + <field name="toEntities"><list> 1078 + <object ref="87"/> 1079 + </list> 1080 + </field> 1081 + <field name="parentDistributionPairs"><list> 1082 + <object type="MessageDistributionPair" id="90"> 1083 + <base type="Entity"> 1084 + <field name="name">agentMessagePair-159</field> 1085 + <field name="uniqueId">159</field> 1086 + <field name="codeName">agentMessagePair-159</field> 1087 + </base> 1088 + 1089 + <field name="type"> 1090 + <object ref="73"/> 1091 + </field> 1092 + <field name="toEntities"><list> 1093 + <object ref="87"/> 1094 + </list> 1095 + </field> 1096 + <field name="parentDistributionPairs"><list> 1097 + <object ref="74"/> 1098 + 1099 + <object ref="72"/> 1100 + 1101 + <object type="MessageDistributionPair" id="91"> 1102 + <base type="Entity"> 1103 + <field name="name">protocolMessagePair-238</field> 1104 + <field name="uniqueId">238</field> 1105 + </base> 1106 + 1107 + <field name="type"> 1108 + <object ref="73"/> 1109 + </field> 1110 + <field name="toEntities"><list> 1111 + <object ref="56"/> 1112 + </list> 1113 + </field> 1114 + <field name="fromEntities"><list> 1115 + <object ref="75"/> 1116 + </list> 1117 + </field> 1118 + <field name="childDistributionPairs"><list> 1119 + <object ref="90"/> 1120 + 1121 + <object type="MessageDistributionPair" id="92"> 1122 + <base type="Entity"> 1123 + <field name="name">agentMessagePair-158</field> 1124 + <field name="uniqueId">158</field> 1125 + <field name="codeName">agentMessagePair-158</field> 1126 + </base> 1127 + 1128 + <field name="type"> 1129 + <object ref="73"/> 1130 + </field> 1131 + <field name="fromEntities"><list> 1132 + <object ref="76"/> 1133 + </list> 1134 + </field> 1135 + <field name="parentDistributionPairs"><list> 1136 + <object ref="74"/> 1137 + 1138 + <object ref="72"/> 1139 + 1140 + <object ref="91"/> 1141 + </list> 1142 + </field> 1143 + <field name="childDistributionPairs"><list> 1144 + <object type="MessageDistributionPair" id="93"> 1145 + <base type="Entity"> 1146 + <field name="name">planMessagePair-168</field> 1147 + <field name="uniqueId">168</field> 1148 + <field name="codeName">planMessagePair-168</field> 1149 + </base> 1150 + 1151 + <field name="type"> 1152 + <object ref="73"/> 1153 + </field> 1154 + <field name="parentDistributionPairs"><list> 1155 + <object ref="92"/> 1156 + </list> 1157 + </field> 1158 + <field name="owner"> 1159 + <object ref="76"/> 1160 + </field> 1161 + </object> 1162 + </list> 1163 + </field> 1164 + <field name="owner"> 1165 + <object ref="75"/> 1166 + </field> 1167 + </object> 1168 + </list> 1169 + </field> 1170 + <field name="owner"> 1171 + <object type="Protocol" id="94"> 1172 + <base type="Entity"> 1173 + <field name="name">SubscriptionsProtocol</field> 1174 + <field name="description">Covers the Protocol between GUIAgent and Airport agent when a new user subscribes to the system</field> 1175 + <field name="uniqueId">236</field> 1176 + </base> 1177 + 1178 + <field name="includedMessages"><list> 1179 + <object ref="91"/> 1180 + 1181 + <object type="MessageDistributionPair" id="95"> 1182 + <base type="Entity"> 1183 + <field name="name">protocolMessagePair-239</field> 1184 + <field name="uniqueId">239</field> 1185 + </base> 1186 + 1187 + <field name="type"> 1188 + <object type="Message" id="96"> 1189 + <base type="Interaction"> 1190 + <base type="Entity"> 1191 + <field name="name">WarningE</field> 1192 + <field name="description">Message sent from an AirportAgent to a User agent subscribed to the airport</field> 1193 + <field name="uniqueId">49</field> 1194 + <field name="codeName">WarningE</field> 1195 + </base> 1196 + 1197 + </base> 1198 + 1199 + <field name="distribution"><list> 1200 + <object type="MessageDistributionPair" id="97"> 1201 + <base type="Entity"> 1202 + <field name="name">systemDiagramPair-50</field> 1203 + <field name="uniqueId">50</field> 1204 + <field name="codeName">systemDiagramPair-50</field> 1205 + </base> 1206 + 1207 + <field name="type"> 1208 + <object ref="96"/> 1209 + </field> 1210 + <field name="toEntities"><list> 1211 + <object ref="75"/> 1212 + </list> 1213 + </field> 1214 + <field name="fromEntities"><list> 1215 + <object ref="56"/> 1216 + </list> 1217 + </field> 1218 + <field name="childDistributionPairs"><list> 1219 + <object type="MessageDistributionPair" id="98"> 1220 + <base type="Entity"> 1221 + <field name="name">agentMessagePair-51</field> 1222 + <field name="uniqueId">51</field> 1223 + <field name="codeName">agentMessagePair-51</field> 1224 + </base> 1225 + 1226 + <field name="type"> 1227 + <object ref="96"/> 1228 + </field> 1229 + <field name="fromEntities"><list> 1230 + <object ref="30"/> 1231 + </list> 1232 + </field> 1233 + <field name="parentDistributionPairs"><list> 1234 + <object ref="97"/> 1235 + 1236 + <object type="MessageDistributionPair" id="99"> 1237 + <base type="Entity"> 1238 + <field name="name">protocolMessagePair-235</field> 1239 + <field name="uniqueId">235</field> 1240 + </base> 1241 + 1242 + <field name="type"> 1243 + <object ref="96"/> 1244 + </field> 1245 + <field name="toEntities"><list> 1246 + <object ref="75"/> 1247 + </list> 1248 + </field> 1249 + <field name="fromEntities"><list> 1250 + <object ref="56"/> 1251 + </list> 1252 + </field> 1253 + <field name="childDistributionPairs"><list> 1254 + <object type="MessageDistributionPair" id="100"> 1255 + <base type="Entity"> 1256 + <field name="name">agentMessagePair-52</field> 1257 + <field name="uniqueId">52</field> 1258 + <field name="codeName">agentMessagePair-52</field> 1259 + </base> 1260 + 1261 + <field name="type"> 1262 + <object ref="96"/> 1263 + </field> 1264 + <field name="toEntities"><list> 1265 + <object type="Plan" id="101"> 1266 + <base type="Entity"> 1267 + <field name="name">AlertUserP</field> 1268 + <field name="description">Checks if the GUI is meant to display that type of Alert and then displays it</field> 1269 + <field name="uniqueId">169</field> 1270 + <field name="codeName">AlertUserP</field> 1271 + </base> 1272 + 1273 + <field name="triggers"><list> 1274 + <object type="MessageDistributionPair" id="102"> 1275 + <base type="Entity"> 1276 + <field name="name">planMessagePair-170</field> 1277 + <field name="uniqueId">170</field> 1278 + <field name="codeName">planMessagePair-170</field> 1279 + </base> 1280 + 1281 + <field name="type"> 1282 + <object ref="96"/> 1283 + </field> 1284 + <field name="parentDistributionPairs"><list> 1285 + <object ref="100"/> 1286 + </list> 1287 + </field> 1288 + <field name="owner"> 1289 + <object ref="101"/> 1290 + </field> 1291 + </object> 1292 + </list> 1293 + </field> 1294 + <field name="goals"><list> 1295 + <object type="Goal" id="103"> 1296 + <base type="Entity"> 1297 + <field name="name">Alert User Scenario</field> 1298 + <field name="description">Scenario covering the process of alerting a user to a potential situation.</field> 1299 + <field name="uniqueId">9</field> 1300 + <field name="codeName">Alert User Scenario</field> 1301 + </base> 1302 + 1303 + <field name="subGoals"><list> 1304 + <object type="Goal" id="104"> 1305 + <base type="Entity"> 1306 + <field name="name">Detect Alertable Situation</field> 1307 + <field name="description">Determine that there is an alertable situation based on AWS readings and forecasts</field> 1308 + <field name="uniqueId">19</field> 1309 + <field name="codeName">Detect Alertable Situation</field> 1310 + </base> 1311 + 1312 + <field name="subGoals"><list> 1313 + <object ref="34"/> 1314 + 1315 + <object ref="19"/> 1316 + 1317 + <object ref="9"/> 1318 + </list> 1319 + </field> 1320 + <field name="orRefined">:true</field> 1321 + </object> 1322 + 1323 + <object type="Goal" id="105"> 1324 + <base type="Entity"> 1325 + <field name="name">Display warning</field> 1326 + <field name="description">Display the warning to the user</field> 1327 + <field name="uniqueId">36</field> 1328 + <field name="codeName">Display warning</field> 1329 + </base> 1330 + 1331 + </object> 1332 + 1333 + <object type="Goal" id="106"> 1334 + <base type="Entity"> 1335 + <field name="name">Check Subscribers</field> 1336 + <field name="description">Check which users require alerts from the given airport</field> 1337 + <field name="uniqueId">34</field> 1338 + <field name="codeName">Check Airport</field> 1339 + </base> 1340 + 1341 + </object> 1342 + 1343 + <object ref="13"/> 1344 + </list> 1345 + </field> 1346 + </object> 1347 + </list> 1348 + </field> 1349 + <field name="actions"><list> 1350 + <object type="Action" id="107"> 1351 + <base type="Interaction"> 1352 + <base type="Entity"> 1353 + <field name="name">Show Warning</field> 1354 + <field name="description">This action is the interaction between the system and the human user. A warning will be displayed on a screen via a pop-up or some other method 1355 + </field> 1356 + <field name="uniqueId">11</field> 1357 + <field name="connectTo"><list> 1358 + <object type="Actor" id="108"> 1359 + <base type="Entity"> 1360 + <field name="name">User</field> 1361 + <field name="description">This is the human operator who will access the system via a GUI. </field> 1362 + <field name="uniqueId">1</field> 1363 + <field name="connectTo"><list> 1364 + <object ref="77"/> 1365 + </list> 1366 + </field> 1367 + <field name="codeName">User</field> 1368 + </base> 1369 + 1370 + <field name="actions"><list> 1371 + <object ref="107"/> 1372 + </list> 1373 + </field> 1374 + <field name="percepts"><list> 1375 + <object ref="77"/> 1376 + </list> 1377 + </field> 1378 + <field name="protocols"><list> 1379 + <object ref="71"/> 1380 + 1381 + <object ref="94"/> 1382 + </list> 1383 + </field> 1384 + </object> 1385 + </list> 1386 + </field> 1387 + <field name="codeName">Show Warning</field> 1388 + </base> 1389 + 1390 + </base> 1391 + 1392 + <field name="parameters">Type of warning 1393 + Warning message</field> 1394 + <field name="durationDescription">N/A</field> 1395 + <field name="failureNotificationDescription">N/A</field> 1396 + <field name="partialChange">N/A</field> 1397 + <field name="sideEffects">N/A</field> 1398 + <field name="agentsPerforming"><list> 1399 + <object ref="75"/> 1400 + </list> 1401 + </field> 1402 + <field name="protocols"><list> 1403 + <object ref="71"/> 1404 + 1405 + <object ref="94"/> 1406 + </list> 1407 + </field> 1408 + </object> 1409 + </list> 1410 + </field> 1411 + <field name="context">Always true;</field> 1412 + <field name="failure">N/A</field> 1413 + <field name="failureRecovery">N/A</field> 1414 + <field name="procedure">Check types of alerts the user wants displayed 1415 + Show alert</field> 1416 + </object> 1417 + </list> 1418 + </field> 1419 + <field name="parentDistributionPairs"><list> 1420 + <object ref="97"/> 1421 + 1422 + <object ref="99"/> 1423 + 1424 + <object ref="95"/> 1425 + </list> 1426 + </field> 1427 + <field name="childDistributionPairs"><list> 1428 + <object ref="102"/> 1429 + </list> 1430 + </field> 1431 + <field name="owner"> 1432 + <object ref="75"/> 1433 + </field> 1434 + </object> 1435 + 1436 + <object ref="98"/> 1437 + </list> 1438 + </field> 1439 + <field name="owner"> 1440 + <object ref="71"/> 1441 + </field> 1442 + </object> 1443 + 1444 + <object ref="95"/> 1445 + </list> 1446 + </field> 1447 + <field name="childDistributionPairs"><list> 1448 + <object type="MessageDistributionPair" id="109"> 1449 + <base type="Entity"> 1450 + <field name="name">capabilityMessagePair-74</field> 1451 + <field name="uniqueId">74</field> 1452 + <field name="codeName">capabilityMessagePair-74</field> 1453 + </base> 1454 + 1455 + <field name="type"> 1456 + <object ref="96"/> 1457 + </field> 1458 + <field name="fromEntities"><list> 1459 + <object ref="30"/> 1460 + </list> 1461 + </field> 1462 + <field name="parentDistributionPairs"><list> 1463 + <object ref="98"/> 1464 + </list> 1465 + </field> 1466 + <field name="childDistributionPairs"><list> 1467 + <object type="MessageDistributionPair" id="110"> 1468 + <base type="Entity"> 1469 + <field name="name">planMessagePair-147</field> 1470 + <field name="uniqueId">147</field> 1471 + <field name="codeName">planMessagePair-147</field> 1472 + </base> 1473 + 1474 + <field name="type"> 1475 + <object ref="96"/> 1476 + </field> 1477 + <field name="parentDistributionPairs"><list> 1478 + <object ref="109"/> 1479 + 1480 + <object ref="98"/> 1481 + </list> 1482 + </field> 1483 + <field name="owner"> 1484 + <object ref="30"/> 1485 + </field> 1486 + </object> 1487 + </list> 1488 + </field> 1489 + <field name="owner"> 1490 + <object type="Capability" id="111"> 1491 + <base type="Entity"> 1492 + <field name="uniqueId">72</field> 1493 + </base> 1494 + 1495 + </object> 1496 + </field> 1497 + </object> 1498 + 1499 + <object ref="110"/> 1500 + </list> 1501 + </field> 1502 + <field name="owner"> 1503 + <object ref="56"/> 1504 + </field> 1505 + </object> 1506 + 1507 + <object ref="100"/> 1508 + </list> 1509 + </field> 1510 + <field name="owner"> 1511 + <object type="SystemOverviewDiagramData" id="112"> 1512 + <field name="agents"><list> 1513 + <object ref="56"/> 1514 + 1515 + <object ref="75"/> 1516 + 1517 + <object ref="68"/> 1518 + </list> 1519 + </field> 1520 + <field name="percepts"><list> 1521 + <object ref="62"/> 1522 + 1523 + <object ref="70"/> 1524 + 1525 + <object ref="77"/> 1526 + </list> 1527 + </field> 1528 + <field name="actions"><list> 1529 + <object ref="60"/> 1530 + 1531 + <object ref="107"/> 1532 + 1533 + <object ref="64"/> 1534 + 1535 + <object type="Action" id="113"> 1536 + <base type="Interaction"> 1537 + <base type="Entity"> 1538 + <field name="name">subscribeTAFSourceAgent</field> 1539 + <field name="description">A subscription sent to the forecaster actor registering it to receive forecast data when it is available.</field> 1540 + <field name="uniqueId">231</field> 1541 + <field name="connectTo"><list> 1542 + <object type="Actor" id="114"> 1543 + <base type="Entity"> 1544 + <field name="name">Forecaster</field> 1545 + <field name="description">The external system which makes weather predictions. This may be a human, a computer system or a combination of both.</field> 1546 + <field name="uniqueId">3</field> 1547 + <field name="connectTo"><list> 1548 + <object ref="70"/> 1549 + </list> 1550 + </field> 1551 + <field name="codeName">Forecaster</field> 1552 + </base> 1553 + 1554 + <field name="actions"><list> 1555 + <object ref="113"/> 1556 + </list> 1557 + </field> 1558 + <field name="percepts"><list> 1559 + <object ref="70"/> 1560 + </list> 1561 + </field> 1562 + <field name="protocols"><list> 1563 + <object ref="71"/> 1564 + 1565 + <object ref="66"/> 1566 + </list> 1567 + </field> 1568 + </object> 1569 + </list> 1570 + </field> 1571 + </base> 1572 + 1573 + </base> 1574 + 1575 + <field name="parameters">None</field> 1576 + <field name="durationDescription">N/A</field> 1577 + <field name="failureNotificationDescription">N/A</field> 1578 + <field name="partialChange">N/A</field> 1579 + <field name="sideEffects">N/A</field> 1580 + <field name="agentsPerforming"><list> 1581 + <object ref="68"/> 1582 + </list> 1583 + </field> 1584 + <field name="protocols"><list> 1585 + <object ref="71"/> 1586 + 1587 + <object ref="66"/> 1588 + </list> 1589 + </field> 1590 + </object> 1591 + </list> 1592 + </field> 1593 + <field name="protocolsDistributionPairs"><list> 1594 + <object type="ProtocolDistributionPair" id="115"> 1595 + <base type="Entity"> 1596 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.ProtocolDistributionPair ID=225&gt;</field> 1597 + <field name="uniqueId">225</field> 1598 + </base> 1599 + 1600 + <field name="type"> 1601 + <object ref="66"/> 1602 + </field> 1603 + <field name="agent1"> 1604 + <object ref="56"/> 1605 + </field> 1606 + <field name="agent2"> 1607 + <object ref="68"/> 1608 + </field> 1609 + </object> 1610 + 1611 + <object type="ProtocolDistributionPair" id="116"> 1612 + <base type="Entity"> 1613 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.ProtocolDistributionPair ID=230&gt;</field> 1614 + <field name="uniqueId">230</field> 1615 + </base> 1616 + 1617 + <field name="type"> 1618 + <object ref="71"/> 1619 + </field> 1620 + <field name="agent1"> 1621 + <object ref="56"/> 1622 + </field> 1623 + <field name="agent2"> 1624 + <object ref="75"/> 1625 + </field> 1626 + </object> 1627 + 1628 + <object type="ProtocolDistributionPair" id="117"> 1629 + <base type="Entity"> 1630 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.ProtocolDistributionPair ID=233&gt;</field> 1631 + <field name="uniqueId">233</field> 1632 + </base> 1633 + 1634 + <field name="type"> 1635 + <object ref="71"/> 1636 + </field> 1637 + <field name="agent1"> 1638 + <object ref="56"/> 1639 + </field> 1640 + <field name="agent2"> 1641 + <object ref="68"/> 1642 + </field> 1643 + </object> 1644 + 1645 + <object type="ProtocolDistributionPair" id="118"> 1646 + <base type="Entity"> 1647 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.ProtocolDistributionPair ID=237&gt;</field> 1648 + <field name="uniqueId">237</field> 1649 + </base> 1650 + 1651 + <field name="type"> 1652 + <object ref="94"/> 1653 + </field> 1654 + <field name="agent1"> 1655 + <object ref="56"/> 1656 + </field> 1657 + <field name="agent2"> 1658 + <object ref="75"/> 1659 + </field> 1660 + </object> 1661 + </list> 1662 + </field> 1663 + <field name="messageDistributionPairs"><list> 1664 + <object ref="97"/> 1665 + 1666 + <object ref="74"/> 1667 + 1668 + <object ref="55"/> 1669 + </list> 1670 + </field> 1671 + </object> 1672 + </field> 1673 + </object> 1674 + 1675 + <object ref="98"/> 1676 + 1677 + <object ref="100"/> 1678 + 1679 + <object ref="109"/> 1680 + 1681 + <object ref="110"/> 1682 + 1683 + <object ref="102"/> 1684 + 1685 + <object ref="99"/> 1686 + 1687 + <object ref="95"/> 1688 + </list> 1689 + </field> 1690 + <field name="purpose">Inform of an alertable situation at the given airport</field> 1691 + <field name="informationCarried">Details of the warning.</field> 1692 + <field name="externalPath"></field> 1693 + </object> 1694 + </field> 1695 + <field name="toEntities"><list> 1696 + <object ref="75"/> 1697 + </list> 1698 + </field> 1699 + <field name="fromEntities"><list> 1700 + <object ref="56"/> 1701 + </list> 1702 + </field> 1703 + <field name="childDistributionPairs"><list> 1704 + <object ref="100"/> 1705 + 1706 + <object ref="98"/> 1707 + </list> 1708 + </field> 1709 + <field name="owner"> 1710 + <object ref="94"/> 1711 + </field> 1712 + </object> 1713 + </list> 1714 + </field> 1715 + <field name="protocolDistributionPairs"><list> 1716 + <object ref="118"/> 1717 + </list> 1718 + </field> 1719 + <field name="agents"><list> 1720 + <object ref="56"/> 1721 + 1722 + <object ref="75"/> 1723 + </list> 1724 + </field> 1725 + <field name="actors"><list> 1726 + <object ref="108"/> 1727 + </list> 1728 + </field> 1729 + <field name="percepts"><list> 1730 + <object ref="77"/> 1731 + </list> 1732 + </field> 1733 + <field name="actions"><list> 1734 + <object ref="107"/> 1735 + </list> 1736 + </field> 1737 + <field name="scenarios"><list> 1738 + <object ref="78"/> 1739 + </list> 1740 + </field> 1741 + <field name="notes"></field> 1742 + <field name="aumlText">start SubscriptionsProtocol 1743 + actor A User 1744 + agent B GUIAgent 1745 + agent C AirportAgent 1746 + percept A B Subscription from User 1747 + message B C SubscriptionE 1748 + box loop 1749 + message C B WarningE 1750 + action B A Show Warning 1751 + end loop</field> 1752 + <field name="aumlInteractions"><list> 1753 + <object type="InteractionDistributionPair" id="119"> 1754 + <field name="type"> 1755 + <object ref="77"/> 1756 + </field> 1757 + <field name="origins"><list> 1758 + <object ref="108"/> 1759 + </list> 1760 + </field> 1761 + <field name="targets"><list> 1762 + <object ref="75"/> 1763 + </list> 1764 + </field> 1765 + </object> 1766 + 1767 + <object type="InteractionDistributionPair" id="120"> 1768 + <field name="type"> 1769 + <object ref="73"/> 1770 + </field> 1771 + <field name="origins"><list> 1772 + <object ref="75"/> 1773 + </list> 1774 + </field> 1775 + <field name="targets"><list> 1776 + <object ref="56"/> 1777 + </list> 1778 + </field> 1779 + </object> 1780 + 1781 + <object type="InteractionDistributionPair" id="121"> 1782 + <field name="type"> 1783 + <object ref="96"/> 1784 + </field> 1785 + <field name="origins"><list> 1786 + <object ref="56"/> 1787 + </list> 1788 + </field> 1789 + <field name="targets"><list> 1790 + <object ref="75"/> 1791 + </list> 1792 + </field> 1793 + </object> 1794 + 1795 + <object type="InteractionDistributionPair" id="122"> 1796 + <field name="type"> 1797 + <object ref="107"/> 1798 + </field> 1799 + <field name="origins"><list> 1800 + <object ref="75"/> 1801 + </list> 1802 + </field> 1803 + <field name="targets"><list> 1804 + <object ref="108"/> 1805 + </list> 1806 + </field> 1807 + </object> 1808 + </list> 1809 + </field> 1810 + </object> 1811 + </field> 1812 + </object> 1813 + </list> 1814 + </field> 1815 + <field name="childDistributionPairs"><list> 1816 + <object ref="89"/> 1817 + 1818 + <object ref="88"/> 1819 + </list> 1820 + </field> 1821 + <field name="owner"> 1822 + <object ref="56"/> 1823 + </field> 1824 + </object> 1825 + </list> 1826 + </field> 1827 + <field name="childDistributionPairs"><list> 1828 + <object ref="88"/> 1829 + </list> 1830 + </field> 1831 + <field name="owner"> 1832 + <object type="Capability" id="123"> 1833 + <base type="Entity"> 1834 + <field name="uniqueId">160</field> 1835 + </base> 1836 + 1837 + </object> 1838 + </field> 1839 + </object> 1840 + 1841 + <object ref="90"/> 1842 + </list> 1843 + </field> 1844 + <field name="owner"> 1845 + <object ref="87"/> 1846 + </field> 1847 + </object> 1848 + </list> 1849 + </field> 1850 + <field name="goals"><list> 1851 + <object type="Goal" id="124"> 1852 + <base type="Entity"> 1853 + <field name="name">Subscribe User</field> 1854 + <field name="description">Add a user to the system</field> 1855 + <field name="uniqueId">148</field> 1856 + <field name="codeName">Subscribe User</field> 1857 + </base> 1858 + 1859 + <field name="subGoals"><list> 1860 + <object ref="81"/> 1861 + 1862 + <object ref="84"/> 1863 + </list> 1864 + </field> 1865 + </object> 1866 + </list> 1867 + </field> 1868 + <field name="data"><list> 1869 + <object type="DataConnection" id="125"> 1870 + <base type="Entity"> 1871 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=163&gt;</field> 1872 + <field name="uniqueId">163</field> 1873 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=163&gt;</field> 1874 + </base> 1875 + 1876 + <field name="type"> 1877 + <object ref="85"/> 1878 + </field> 1879 + <field name="writingEntities"><list> 1880 + <object ref="87"/> 1881 + </list> 1882 + </field> 1883 + <field name="parentConnection"> 1884 + <object ref="86"/> 1885 + </field> 1886 + </object> 1887 + 1888 + <object ref="86"/> 1889 + </list> 1890 + </field> 1891 + <field name="context">Always true</field> 1892 + <field name="failure">N/A</field> 1893 + <field name="failureRecovery">N/A</field> 1894 + <field name="procedure">Retrieve user name from incoming messageEvent 1895 + Add to datastore</field> 1896 + </object> 1897 + </list> 1898 + </field> 1899 + <field name="childConnections"><list> 1900 + <object ref="125"/> 1901 + </list> 1902 + </field> 1903 + </object> 1904 + 1905 + <object ref="125"/> 1906 + 1907 + <object type="DataConnection" id="126"> 1908 + <base type="Entity"> 1909 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=164&gt;</field> 1910 + <field name="uniqueId">164</field> 1911 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=164&gt;</field> 1912 + </base> 1913 + 1914 + <field name="type"> 1915 + <object ref="85"/> 1916 + </field> 1917 + <field name="readingEntities"><list> 1918 + <object ref="30"/> 1919 + </list> 1920 + </field> 1921 + </object> 1922 + </list> 1923 + </field> 1924 + <field name="externalPath"></field> 1925 + </object> 1926 + </list> 1927 + </field> 1928 + <field name="roles"><list> 1929 + <object type="Role" id="127"> 1930 + <base type="Entity"> 1931 + <field name="name">AddSubscription</field> 1932 + <field name="description">Role which covers adding a user subscription to a given airport</field> 1933 + <field name="uniqueId">153</field> 1934 + <field name="codeName">AddSubscription</field> 1935 + </base> 1936 + 1937 + <field name="goals"><list> 1938 + <object ref="84"/> 1939 + </list> 1940 + </field> 1941 + <field name="dataWritten"><list> 1942 + <object ref="85"/> 1943 + </list> 1944 + </field> 1945 + </object> 1946 + </list> 1947 + </field> 1948 + </object> 1949 + </list> 1950 + </field> 1951 + <field name="variation"></field> 1952 + <field name="linkedGoals"><list> 1953 + <object ref="124"/> 1954 + </list> 1955 + </field> 1956 + </object> 1957 + </list> 1958 + </field> 1959 + </base> 1960 + 1961 + </base> 1962 + 1963 + <field name="source">User</field> 1964 + <field name="informationCarried">User - The origin of the request 1965 + Airport - The airport to subscribe to</field> 1966 + <field name="knowledgeUpdated">User Subscriptions</field> 1967 + <field name="processing"></field> 1968 + <field name="frequency"></field> 1969 + <field name="agentsResponding"><list> 1970 + <object ref="75"/> 1971 + </list> 1972 + </field> 1973 + <field name="protocols"><list> 1974 + <object ref="71"/> 1975 + 1976 + <object ref="94"/> 1977 + </list> 1978 + </field> 1979 + </object> 1980 + </list> 1981 + </field> 1982 + <field name="goals"><list> 1983 + <object ref="81"/> 1984 + </list> 1985 + </field> 1986 + <field name="outgoingMessages"><list> 1987 + <object ref="93"/> 1988 + </list> 1989 + </field> 1990 + <field name="context">Always true;</field> 1991 + <field name="failure">N/A</field> 1992 + <field name="failureRecovery">N/A</field> 1993 + <field name="procedure">Check user from which the subscription request originated 1994 + Send to relevant airport with username</field> 1995 + </object> 1996 + 1997 + <object ref="101"/> 1998 + </list> 1999 + </field> 2000 + <field name="protocols"><list> 2001 + <object ref="71"/> 2002 + 2003 + <object ref="94"/> 2004 + </list> 2005 + </field> 2006 + <field name="goals"><list> 2007 + <object ref="105"/> 2008 + 2009 + <object ref="81"/> 2010 + </list> 2011 + </field> 2012 + <field name="percepts"><list> 2013 + <object ref="77"/> 2014 + </list> 2015 + </field> 2016 + <field name="actions"><list> 2017 + <object ref="107"/> 2018 + </list> 2019 + </field> 2020 + <field name="roles"><list> 2021 + <object type="Role" id="128"> 2022 + <base type="Entity"> 2023 + <field name="name">DisplayWarning</field> 2024 + <field name="description">Role which covers the displaying of a warning to the human user</field> 2025 + <field name="uniqueId">43</field> 2026 + <field name="codeName">DisplayWarning</field> 2027 + </base> 2028 + 2029 + <field name="goals"><list> 2030 + <object ref="105"/> 2031 + </list> 2032 + </field> 2033 + <field name="actions"><list> 2034 + <object ref="107"/> 2035 + </list> 2036 + </field> 2037 + </object> 2038 + 2039 + <object ref="82"/> 2040 + </list> 2041 + </field> 2042 + <field name="messages"><list> 2043 + <object ref="100"/> 2044 + 2045 + <object ref="92"/> 2046 + </list> 2047 + </field> 2048 + </object> 2049 + </list> 2050 + </field> 2051 + <field name="childDistributionPairs"><list> 2052 + <object ref="92"/> 2053 + 2054 + <object ref="90"/> 2055 + </list> 2056 + </field> 2057 + <field name="owner"> 2058 + <object ref="112"/> 2059 + </field> 2060 + </object> 2061 + 2062 + <object ref="92"/> 2063 + 2064 + <object ref="90"/> 2065 + 2066 + <object ref="89"/> 2067 + 2068 + <object ref="88"/> 2069 + 2070 + <object ref="93"/> 2071 + 2072 + <object ref="72"/> 2073 + 2074 + <object ref="91"/> 2075 + </list> 2076 + </field> 2077 + <field name="purpose">To enable the user to subscribe to an airport </field> 2078 + <field name="informationCarried">No information is carried. The users name is obtained from the "From" field of the MessageEvent</field> 2079 + <field name="externalPath"></field> 2080 + </object> 2081 + </field> 2082 + <field name="toEntities"><list> 2083 + <object ref="56"/> 2084 + </list> 2085 + </field> 2086 + <field name="fromEntities"><list> 2087 + <object ref="75"/> 2088 + </list> 2089 + </field> 2090 + <field name="childDistributionPairs"><list> 2091 + <object ref="90"/> 2092 + 2093 + <object ref="92"/> 2094 + </list> 2095 + </field> 2096 + <field name="owner"> 2097 + <object ref="71"/> 2098 + </field> 2099 + </object> 2100 + 2101 + <object type="MessageDistributionPair" id="129"> 2102 + <base type="Entity"> 2103 + <field name="name">protocolMessagePair-234</field> 2104 + <field name="uniqueId">234</field> 2105 + </base> 2106 + 2107 + <field name="type"> 2108 + <object ref="54"/> 2109 + </field> 2110 + <field name="toEntities"><list> 2111 + <object ref="56"/> 2112 + </list> 2113 + </field> 2114 + <field name="fromEntities"><list> 2115 + <object ref="68"/> 2116 + </list> 2117 + </field> 2118 + <field name="childDistributionPairs"><list> 2119 + <object type="MessageDistributionPair" id="130"> 2120 + <base type="Entity"> 2121 + <field name="name">agentMessagePair-175</field> 2122 + <field name="uniqueId">175</field> 2123 + <field name="codeName">agentMessagePair-175</field> 2124 + </base> 2125 + 2126 + <field name="type"> 2127 + <object ref="54"/> 2128 + </field> 2129 + <field name="toEntities"><list> 2130 + <object ref="52"/> 2131 + </list> 2132 + </field> 2133 + <field name="parentDistributionPairs"><list> 2134 + <object ref="55"/> 2135 + 2136 + <object ref="129"/> 2137 + 2138 + <object ref="67"/> 2139 + </list> 2140 + </field> 2141 + <field name="childDistributionPairs"><list> 2142 + <object type="MessageDistributionPair" id="131"> 2143 + <base type="Entity"> 2144 + <field name="name">capabilityMessagePair-176</field> 2145 + <field name="uniqueId">176</field> 2146 + <field name="codeName">capabilityMessagePair-176</field> 2147 + </base> 2148 + 2149 + <field name="type"> 2150 + <object ref="54"/> 2151 + </field> 2152 + <field name="toEntities"><list> 2153 + <object ref="52"/> 2154 + </list> 2155 + </field> 2156 + <field name="parentDistributionPairs"><list> 2157 + <object ref="130"/> 2158 + </list> 2159 + </field> 2160 + <field name="childDistributionPairs"><list> 2161 + <object ref="53"/> 2162 + </list> 2163 + </field> 2164 + <field name="owner"> 2165 + <object type="Capability" id="132"> 2166 + <base type="Entity"> 2167 + <field name="uniqueId">54</field> 2168 + </base> 2169 + 2170 + </object> 2171 + </field> 2172 + </object> 2173 + 2174 + <object ref="53"/> 2175 + </list> 2176 + </field> 2177 + <field name="owner"> 2178 + <object ref="56"/> 2179 + </field> 2180 + </object> 2181 + 2182 + <object type="MessageDistributionPair" id="133"> 2183 + <base type="Entity"> 2184 + <field name="name">agentMessagePair-174</field> 2185 + <field name="uniqueId">174</field> 2186 + <field name="codeName">agentMessagePair-174</field> 2187 + </base> 2188 + 2189 + <field name="type"> 2190 + <object ref="54"/> 2191 + </field> 2192 + <field name="fromEntities"><list> 2193 + <object ref="69"/> 2194 + </list> 2195 + </field> 2196 + <field name="parentDistributionPairs"><list> 2197 + <object ref="55"/> 2198 + 2199 + <object ref="129"/> 2200 + 2201 + <object ref="67"/> 2202 + </list> 2203 + </field> 2204 + <field name="childDistributionPairs"><list> 2205 + <object type="MessageDistributionPair" id="134"> 2206 + <base type="Entity"> 2207 + <field name="name">planMessagePair-178</field> 2208 + <field name="uniqueId">178</field> 2209 + <field name="codeName">planMessagePair-178</field> 2210 + </base> 2211 + 2212 + <field name="type"> 2213 + <object ref="54"/> 2214 + </field> 2215 + <field name="parentDistributionPairs"><list> 2216 + <object ref="133"/> 2217 + </list> 2218 + </field> 2219 + <field name="owner"> 2220 + <object ref="69"/> 2221 + </field> 2222 + </object> 2223 + </list> 2224 + </field> 2225 + <field name="owner"> 2226 + <object ref="68"/> 2227 + </field> 2228 + </object> 2229 + </list> 2230 + </field> 2231 + <field name="owner"> 2232 + <object ref="71"/> 2233 + </field> 2234 + </object> 2235 + 2236 + <object ref="99"/> 2237 + </list> 2238 + </field> 2239 + <field name="protocolDistributionPairs"><list> 2240 + <object ref="116"/> 2241 + 2242 + <object ref="117"/> 2243 + </list> 2244 + </field> 2245 + <field name="agents"><list> 2246 + <object ref="75"/> 2247 + 2248 + <object ref="68"/> 2249 + 2250 + <object ref="56"/> 2251 + </list> 2252 + </field> 2253 + <field name="actors"><list> 2254 + <object ref="108"/> 2255 + 2256 + <object ref="114"/> 2257 + 2258 + <object ref="61"/> 2259 + </list> 2260 + </field> 2261 + <field name="percepts"><list> 2262 + <object ref="77"/> 2263 + 2264 + <object ref="62"/> 2265 + 2266 + <object ref="70"/> 2267 + </list> 2268 + </field> 2269 + <field name="actions"><list> 2270 + <object ref="64"/> 2271 + 2272 + <object ref="113"/> 2273 + 2274 + <object ref="60"/> 2275 + 2276 + <object ref="107"/> 2277 + </list> 2278 + </field> 2279 + <field name="scenarios"><list> 2280 + <object type="Scenario" id="135"> 2281 + <base type="Entity"> 2282 + <field name="name">Alert User Scenario scenario</field> 2283 + <field name="description">This scenario covers all the necessary processes to alert a user to certain situations. This involves detecting that an alertable situation exists by monitoring both the AWS data and the forecasts. An appropriate warning must then be created, and sent to all users who are subscribed to receive such warnings.</field> 2284 + <field name="uniqueId">10</field> 2285 + <field name="connectTo"><list> 2286 + <object ref="107"/> 2287 + </list> 2288 + </field> 2289 + <field name="codeName">Alert User Scenario scenario</field> 2290 + </base> 2291 + 2292 + <field name="context">Data stores have been updated</field> 2293 + <field name="steps"><list> 2294 + <object type="Step" id="136"> 2295 + <base type="Entity"> 2296 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=258&gt;</field> 2297 + <field name="description">Determines if there is an alertable situation by checking beliefs against a set of rules</field> 2298 + <field name="uniqueId">258</field> 2299 + </base> 2300 + 2301 + <field name="step"> 2302 + <object ref="104"/> 2303 + </field> 2304 + <field name="dataRead"><list> 2305 + <object type="Data" id="137"> 2306 + <base type="Entity"> 2307 + <field name="name">aws_readings</field> 2308 + <field name="description">Data store for storing AWS readings at each airport. There is one datastore per AiportAgent and therefore one per airport. Only the four most recent readings are stored, and older readings removed.</field> 2309 + <field name="uniqueId">44</field> 2310 + <field name="codeName">aws_readings</field> 2311 + </base> 2312 + 2313 + <field name="dataType">AWSReadings</field> 2314 + <field name="includedFields">Fields: 2315 + Time of reading - Date 2316 + Temperature - Double 2317 + Wind - Double 2318 + Rain - Double 2319 + Fog - Boolean 2320 + 2321 + Aspects: 2322 + - Query to obtain each reading individually, as well as current reading 2323 + - function query to remove readings older than the previous 4</field> 2324 + <field name="writtenBy"><list> 2325 + <object ref="57"/> 2326 + </list> 2327 + </field> 2328 + <field name="readBy"><list> 2329 + <object ref="8"/> 2330 + 2331 + <object ref="18"/> 2332 + </list> 2333 + </field> 2334 + <field name="initialisation">Data store can start empty, and as incoming readings arrive they will be written</field> 2335 + <field name="writtenWhen">New AWS data arrives 2336 + Checking for alertable situations</field> 2337 + <field name="connections"><list> 2338 + <object type="DataConnection" id="138"> 2339 + <base type="Entity"> 2340 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=58&gt;</field> 2341 + <field name="uniqueId">58</field> 2342 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=58&gt;</field> 2343 + </base> 2344 + 2345 + <field name="type"> 2346 + <object ref="137"/> 2347 + </field> 2348 + <field name="readingEntities"><list> 2349 + <object ref="8"/> 2350 + 2351 + <object ref="18"/> 2352 + </list> 2353 + </field> 2354 + <field name="writingEntities"><list> 2355 + <object ref="57"/> 2356 + </list> 2357 + </field> 2358 + <field name="childConnections"><list> 2359 + <object type="DataConnection" id="139"> 2360 + <base type="Entity"> 2361 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=60&gt;</field> 2362 + <field name="uniqueId">60</field> 2363 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=60&gt;</field> 2364 + </base> 2365 + 2366 + <field name="type"> 2367 + <object ref="137"/> 2368 + </field> 2369 + <field name="writingEntities"><list> 2370 + <object type="Plan" id="140"> 2371 + <base type="Entity"> 2372 + <field name="name">UpdateAWSP</field> 2373 + <field name="description">Writes the incoming data to the AWS data store</field> 2374 + <field name="uniqueId">76</field> 2375 + <field name="codeName">UpdateAWSP</field> 2376 + </base> 2377 + 2378 + <field name="triggers"><list> 2379 + <object ref="62"/> 2380 + </list> 2381 + </field> 2382 + <field name="goals"><list> 2383 + <object ref="58"/> 2384 + </list> 2385 + </field> 2386 + <field name="data"><list> 2387 + <object ref="139"/> 2388 + </list> 2389 + </field> 2390 + <field name="context">True;</field> 2391 + <field name="failure">N/A</field> 2392 + <field name="failureRecovery">N/A</field> 2393 + <field name="procedure">Process data and write to beliefset</field> 2394 + </object> 2395 + </list> 2396 + </field> 2397 + <field name="parentConnection"> 2398 + <object ref="138"/> 2399 + </field> 2400 + </object> 2401 + 2402 + <object type="DataConnection" id="141"> 2403 + <base type="Entity"> 2404 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=62&gt;</field> 2405 + <field name="uniqueId">62</field> 2406 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=62&gt;</field> 2407 + </base> 2408 + 2409 + <field name="type"> 2410 + <object ref="137"/> 2411 + </field> 2412 + <field name="readingEntities"><list> 2413 + <object ref="14"/> 2414 + 2415 + <object type="Plan" id="142"> 2416 + <base type="Entity"> 2417 + <field name="name">ReportReallyUnexpectedIncreasingWindP</field> 2418 + <field name="description">Creates a high wind warning</field> 2419 + <field name="uniqueId">97</field> 2420 + <field name="codeName">ReportReallyUnexpectedIncreasingWindP</field> 2421 + </base> 2422 + 2423 + <field name="triggers"><list> 2424 + <object type="MessageDistributionPair" id="143"> 2425 + <base type="Entity"> 2426 + <field name="name">planMessagePair-181</field> 2427 + <field name="uniqueId">181</field> 2428 + <field name="codeName">planMessagePair-181</field> 2429 + </base> 2430 + 2431 + <field name="type"> 2432 + <object ref="16"/> 2433 + </field> 2434 + <field name="parentDistributionPairs"><list> 2435 + <object type="MessageDistributionPair" id="144"> 2436 + <base type="Entity"> 2437 + <field name="name">capabilityMessagePair-79</field> 2438 + <field name="uniqueId">79</field> 2439 + <field name="codeName">capabilityMessagePair-79</field> 2440 + </base> 2441 + 2442 + <field name="type"> 2443 + <object ref="16"/> 2444 + </field> 2445 + <field name="toEntities"><list> 2446 + <object ref="14"/> 2447 + 2448 + <object ref="142"/> 2449 + 2450 + <object type="Plan" id="145"> 2451 + <base type="Entity"> 2452 + <field name="name">ReportHighUnexpectedIncreasingWindP</field> 2453 + <field name="description">Create a high wind warning</field> 2454 + <field name="uniqueId">101</field> 2455 + <field name="codeName">ReportHighUnexpectedIncreasingWindP</field> 2456 + </base> 2457 + 2458 + <field name="triggers"><list> 2459 + <object type="MessageDistributionPair" id="146"> 2460 + <base type="Entity"> 2461 + <field name="name">planMessagePair-182</field> 2462 + <field name="uniqueId">182</field> 2463 + <field name="codeName">planMessagePair-182</field> 2464 + </base> 2465 + 2466 + <field name="type"> 2467 + <object ref="16"/> 2468 + </field> 2469 + <field name="parentDistributionPairs"><list> 2470 + <object ref="144"/> 2471 + </list> 2472 + </field> 2473 + <field name="owner"> 2474 + <object ref="145"/> 2475 + </field> 2476 + </object> 2477 + </list> 2478 + </field> 2479 + <field name="goals"><list> 2480 + <object ref="12"/> 2481 + 2482 + <object ref="13"/> 2483 + </list> 2484 + </field> 2485 + <field name="outgoingMessages"><list> 2486 + <object type="MessageDistributionPair" id="147"> 2487 + <base type="Entity"> 2488 + <field name="name">planMessagePair-210</field> 2489 + <field name="uniqueId">210</field> 2490 + <field name="codeName">planMessagePair-210</field> 2491 + </base> 2492 + 2493 + <field name="type"> 2494 + <object ref="28"/> 2495 + </field> 2496 + <field name="parentDistributionPairs"><list> 2497 + <object type="MessageDistributionPair" id="148"> 2498 + <base type="Entity"> 2499 + <field name="name">capabilityMessagePair-205</field> 2500 + <field name="uniqueId">205</field> 2501 + <field name="codeName">capabilityMessagePair-205</field> 2502 + </base> 2503 + 2504 + <field name="type"> 2505 + <object ref="28"/> 2506 + </field> 2507 + <field name="fromEntities"><list> 2508 + <object ref="14"/> 2509 + 2510 + <object ref="142"/> 2511 + 2512 + <object ref="145"/> 2513 + </list> 2514 + </field> 2515 + <field name="parentDistributionPairs"><list> 2516 + <object ref="32"/> 2517 + </list> 2518 + </field> 2519 + <field name="childDistributionPairs"><list> 2520 + <object type="MessageDistributionPair" id="149"> 2521 + <base type="Entity"> 2522 + <field name="name">planMessagePair-208</field> 2523 + <field name="uniqueId">208</field> 2524 + <field name="codeName">planMessagePair-208</field> 2525 + </base> 2526 + 2527 + <field name="type"> 2528 + <object ref="28"/> 2529 + </field> 2530 + <field name="parentDistributionPairs"><list> 2531 + <object ref="148"/> 2532 + </list> 2533 + </field> 2534 + <field name="owner"> 2535 + <object ref="14"/> 2536 + </field> 2537 + </object> 2538 + 2539 + <object type="MessageDistributionPair" id="150"> 2540 + <base type="Entity"> 2541 + <field name="name">planMessagePair-209</field> 2542 + <field name="uniqueId">209</field> 2543 + <field name="codeName">planMessagePair-209</field> 2544 + </base> 2545 + 2546 + <field name="type"> 2547 + <object ref="28"/> 2548 + </field> 2549 + <field name="parentDistributionPairs"><list> 2550 + <object ref="148"/> 2551 + </list> 2552 + </field> 2553 + <field name="owner"> 2554 + <object ref="142"/> 2555 + </field> 2556 + </object> 2557 + 2558 + <object ref="147"/> 2559 + </list> 2560 + </field> 2561 + <field name="owner"> 2562 + <object ref="8"/> 2563 + </field> 2564 + </object> 2565 + </list> 2566 + </field> 2567 + <field name="owner"> 2568 + <object ref="145"/> 2569 + </field> 2570 + </object> 2571 + </list> 2572 + </field> 2573 + <field name="data"><list> 2574 + <object type="DataConnection" id="151"> 2575 + <base type="Entity"> 2576 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=64&gt;</field> 2577 + <field name="uniqueId">64</field> 2578 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=64&gt;</field> 2579 + </base> 2580 + 2581 + <field name="type"> 2582 + <object ref="50"/> 2583 + </field> 2584 + <field name="readingEntities"><list> 2585 + <object ref="14"/> 2586 + 2587 + <object ref="142"/> 2588 + 2589 + <object ref="145"/> 2590 + </list> 2591 + </field> 2592 + <field name="parentConnection"> 2593 + <object ref="51"/> 2594 + </field> 2595 + </object> 2596 + 2597 + <object ref="141"/> 2598 + </list> 2599 + </field> 2600 + <field name="context">If the wind is over 20 knots, increasing and is higher than forecast</field> 2601 + <field name="failure">N/A</field> 2602 + <field name="failureRecovery">N/A</field> 2603 + <field name="procedure">Post NewWarningE event with relevant data</field> 2604 + </object> 2605 + </list> 2606 + </field> 2607 + <field name="fromEntities"><list> 2608 + <object ref="141"/> 2609 + 2610 + <object ref="151"/> 2611 + </list> 2612 + </field> 2613 + <field name="parentDistributionPairs"><list> 2614 + <object ref="17"/> 2615 + </list> 2616 + </field> 2617 + <field name="childDistributionPairs"><list> 2618 + <object type="MessageDistributionPair" id="152"> 2619 + <base type="Entity"> 2620 + <field name="name">planMessagePair-87</field> 2621 + <field name="uniqueId">87</field> 2622 + <field name="codeName">planMessagePair-87</field> 2623 + </base> 2624 + 2625 + <field name="type"> 2626 + <object ref="16"/> 2627 + </field> 2628 + <field name="parentDistributionPairs"><list> 2629 + <object ref="144"/> 2630 + </list> 2631 + </field> 2632 + <field name="owner"> 2633 + <object type="Plan" id="153"> 2634 + <base type="Entity"> 2635 + <field name="uniqueId">86</field> 2636 + </base> 2637 + 2638 + </object> 2639 + </field> 2640 + </object> 2641 + 2642 + <object ref="15"/> 2643 + 2644 + <object ref="143"/> 2645 + 2646 + <object ref="146"/> 2647 + </list> 2648 + </field> 2649 + <field name="owner"> 2650 + <object ref="8"/> 2651 + </field> 2652 + </object> 2653 + </list> 2654 + </field> 2655 + <field name="owner"> 2656 + <object ref="142"/> 2657 + </field> 2658 + </object> 2659 + </list> 2660 + </field> 2661 + <field name="goals"><list> 2662 + <object ref="11"/> 2663 + 2664 + <object ref="13"/> 2665 + </list> 2666 + </field> 2667 + <field name="outgoingMessages"><list> 2668 + <object ref="150"/> 2669 + </list> 2670 + </field> 2671 + <field name="data"><list> 2672 + <object ref="151"/> 2673 + 2674 + <object ref="141"/> 2675 + </list> 2676 + </field> 2677 + <field name="context">If the current wind strength is greater than 5 knots, is significantly higher than forecast, and is increasing fairly rapidly</field> 2678 + <field name="failure">N/A</field> 2679 + <field name="failureRecovery">N/A</field> 2680 + <field name="procedure">Post NewWarningE event with relevant data</field> 2681 + </object> 2682 + 2683 + <object ref="145"/> 2684 + </list> 2685 + </field> 2686 + <field name="parentConnection"> 2687 + <object ref="138"/> 2688 + </field> 2689 + </object> 2690 + 2691 + <object type="DataConnection" id="154"> 2692 + <base type="Entity"> 2693 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=67&gt;</field> 2694 + <field name="uniqueId">67</field> 2695 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=67&gt;</field> 2696 + </base> 2697 + 2698 + <field name="type"> 2699 + <object ref="137"/> 2700 + </field> 2701 + <field name="readingEntities"><list> 2702 + <object ref="22"/> 2703 + 2704 + <object ref="25"/> 2705 + 2706 + <object type="Plan" id="155"> 2707 + <base type="Entity"> 2708 + <field name="name">ReportTrendDiscrepancyP</field> 2709 + <field name="description">Creates a Forecast discrepancy warning</field> 2710 + <field name="uniqueId">138</field> 2711 + <field name="codeName">ReportTrendDiscrepancyP</field> 2712 + </base> 2713 + 2714 + <field name="triggers"><list> 2715 + <object type="MessageDistributionPair" id="156"> 2716 + <base type="Entity"> 2717 + <field name="name">planMessagePair-223</field> 2718 + <field name="uniqueId">223</field> 2719 + </base> 2720 + 2721 + <field name="type"> 2722 + <object ref="16"/> 2723 + </field> 2724 + <field name="parentDistributionPairs"><list> 2725 + <object ref="24"/> 2726 + </list> 2727 + </field> 2728 + <field name="owner"> 2729 + <object ref="155"/> 2730 + </field> 2731 + </object> 2732 + </list> 2733 + </field> 2734 + <field name="goals"><list> 2735 + <object ref="13"/> 2736 + </list> 2737 + </field> 2738 + <field name="outgoingMessages"><list> 2739 + <object type="MessageDistributionPair" id="157"> 2740 + <base type="Entity"> 2741 + <field name="name">planMessagePair-217</field> 2742 + <field name="uniqueId">217</field> 2743 + <field name="codeName">planMessagePair-217</field> 2744 + </base> 2745 + 2746 + <field name="type"> 2747 + <object ref="28"/> 2748 + </field> 2749 + <field name="parentDistributionPairs"><list> 2750 + <object type="MessageDistributionPair" id="158"> 2751 + <base type="Entity"> 2752 + <field name="name">capabilityMessagePair-206</field> 2753 + <field name="uniqueId">206</field> 2754 + <field name="codeName">capabilityMessagePair-206</field> 2755 + </base> 2756 + 2757 + <field name="type"> 2758 + <object ref="28"/> 2759 + </field> 2760 + <field name="fromEntities"><list> 2761 + <object ref="22"/> 2762 + 2763 + <object ref="25"/> 2764 + 2765 + <object ref="155"/> 2766 + </list> 2767 + </field> 2768 + <field name="parentDistributionPairs"><list> 2769 + <object ref="32"/> 2770 + </list> 2771 + </field> 2772 + <field name="childDistributionPairs"><list> 2773 + <object type="MessageDistributionPair" id="159"> 2774 + <base type="Entity"> 2775 + <field name="name">planMessagePair-215</field> 2776 + <field name="uniqueId">215</field> 2777 + <field name="codeName">planMessagePair-215</field> 2778 + </base> 2779 + 2780 + <field name="type"> 2781 + <object ref="28"/> 2782 + </field> 2783 + <field name="parentDistributionPairs"><list> 2784 + <object ref="158"/> 2785 + </list> 2786 + </field> 2787 + <field name="owner"> 2788 + <object ref="22"/> 2789 + </field> 2790 + </object> 2791 + 2792 + <object ref="27"/> 2793 + 2794 + <object ref="157"/> 2795 + </list> 2796 + </field> 2797 + <field name="owner"> 2798 + <object ref="18"/> 2799 + </field> 2800 + </object> 2801 + </list> 2802 + </field> 2803 + <field name="owner"> 2804 + <object ref="155"/> 2805 + </field> 2806 + </object> 2807 + </list> 2808 + </field> 2809 + <field name="data"><list> 2810 + <object ref="154"/> 2811 + 2812 + <object type="DataConnection" id="160"> 2813 + <base type="Entity"> 2814 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=66&gt;</field> 2815 + <field name="uniqueId">66</field> 2816 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=66&gt;</field> 2817 + </base> 2818 + 2819 + <field name="type"> 2820 + <object ref="50"/> 2821 + </field> 2822 + <field name="readingEntities"><list> 2823 + <object ref="22"/> 2824 + 2825 + <object ref="25"/> 2826 + 2827 + <object ref="155"/> 2828 + </list> 2829 + </field> 2830 + <field name="parentConnection"> 2831 + <object ref="51"/> 2832 + </field> 2833 + </object> 2834 + </list> 2835 + </field> 2836 + <field name="context">If the forecast trend differs from the actual trend.</field> 2837 + <field name="failure">N/A</field> 2838 + <field name="failureRecovery">N/A</field> 2839 + <field name="procedure">Post NewWarningE event with relevant data</field> 2840 + </object> 2841 + </list> 2842 + </field> 2843 + <field name="parentConnection"> 2844 + <object ref="138"/> 2845 + </field> 2846 + </object> 2847 + </list> 2848 + </field> 2849 + </object> 2850 + 2851 + <object ref="139"/> 2852 + 2853 + <object ref="141"/> 2854 + 2855 + <object ref="154"/> 2856 + </list> 2857 + </field> 2858 + <field name="externalPath"></field> 2859 + <field name="postedEvents"><list> 2860 + <object type="PostedEvent" id="161"> 2861 + <field name="type"> 2862 + <object ref="16"/> 2863 + </field> 2864 + </object> 2865 + </list> 2866 + </field> 2867 + </object> 2868 + 2869 + <object ref="50"/> 2870 + </list> 2871 + </field> 2872 + <field name="roles"><list> 2873 + <object type="Role" id="162"> 2874 + <base type="Entity"> 2875 + <field name="name">CheckForImmediateChange</field> 2876 + <field name="description">Role which covers the checking of data for a change in the immediate forecast</field> 2877 + <field name="uniqueId">40</field> 2878 + <field name="codeName">CheckForImmediateChange</field> 2879 + </base> 2880 + 2881 + <field name="goals"><list> 2882 + <object ref="35"/> 2883 + 2884 + <object ref="36"/> 2885 + 2886 + <object ref="37"/> 2887 + 2888 + <object ref="38"/> 2889 + </list> 2890 + </field> 2891 + <field name="dataRead"><list> 2892 + <object ref="50"/> 2893 + </list> 2894 + </field> 2895 + </object> 2896 + 2897 + <object type="Role" id="163"> 2898 + <base type="Entity"> 2899 + <field name="name">CheckForForecastDiscrepancy</field> 2900 + <field name="description">Role which covers checking data for a discrepancy between the forecast and actual readings</field> 2901 + <field name="uniqueId">41</field> 2902 + <field name="codeName">CheckForForecastDiscrepancy</field> 2903 + </base> 2904 + 2905 + <field name="goals"><list> 2906 + <object ref="21"/> 2907 + 2908 + <object ref="20"/> 2909 + </list> 2910 + </field> 2911 + <field name="dataRead"><list> 2912 + <object ref="137"/> 2913 + 2914 + <object ref="50"/> 2915 + </list> 2916 + </field> 2917 + </object> 2918 + 2919 + <object type="Role" id="164"> 2920 + <base type="Entity"> 2921 + <field name="name">CheckForHighWind</field> 2922 + <field name="description">Roles which covers checking the data for a high wind situation</field> 2923 + <field name="uniqueId">39</field> 2924 + <field name="codeName">CheckForHighWind</field> 2925 + </base> 2926 + 2927 + <field name="goals"><list> 2928 + <object ref="11"/> 2929 + 2930 + <object ref="12"/> 2931 + 2932 + <object ref="10"/> 2933 + </list> 2934 + </field> 2935 + <field name="dataRead"><list> 2936 + <object ref="137"/> 2937 + 2938 + <object ref="50"/> 2939 + </list> 2940 + </field> 2941 + </object> 2942 + </list> 2943 + </field> 2944 + </object> 2945 + 2946 + <object type="Step" id="165"> 2947 + <base type="Entity"> 2948 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=262&gt;</field> 2949 + <field name="description">Creates the relevant warning with warning message and type</field> 2950 + <field name="uniqueId">262</field> 2951 + </base> 2952 + 2953 + <field name="step"> 2954 + <object ref="13"/> 2955 + </field> 2956 + <field name="roles"><list> 2957 + <object type="Role" id="166"> 2958 + <base type="Entity"> 2959 + <field name="name">CreateWarning</field> 2960 + <field name="description">Role which covers the creation of an appropriate warning message</field> 2961 + <field name="uniqueId">42</field> 2962 + <field name="codeName">CreateWarning</field> 2963 + </base> 2964 + 2965 + <field name="goals"><list> 2966 + <object ref="106"/> 2967 + 2968 + <object ref="13"/> 2969 + </list> 2970 + </field> 2971 + <field name="dataRead"><list> 2972 + <object ref="85"/> 2973 + </list> 2974 + </field> 2975 + </object> 2976 + </list> 2977 + </field> 2978 + </object> 2979 + 2980 + <object type="Step" id="167"> 2981 + <base type="Entity"> 2982 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=259&gt;</field> 2983 + <field name="description">Checks subscriptions beliefs to see which users are registered to receive alerts from this airport</field> 2984 + <field name="uniqueId">259</field> 2985 + </base> 2986 + 2987 + <field name="step"> 2988 + <object ref="106"/> 2989 + </field> 2990 + <field name="dataRead"><list> 2991 + <object ref="85"/> 2992 + </list> 2993 + </field> 2994 + <field name="roles"><list> 2995 + <object ref="128"/> 2996 + </list> 2997 + </field> 2998 + </object> 2999 + 3000 + <object type="Step" id="168"> 3001 + <base type="Entity"> 3002 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=266&gt;</field> 3003 + <field name="description">The warning is displayed to the user</field> 3004 + <field name="uniqueId">266</field> 3005 + </base> 3006 + 3007 + <field name="step"> 3008 + <object ref="107"/> 3009 + </field> 3010 + </object> 3011 + </list> 3012 + </field> 3013 + <field name="variation"></field> 3014 + <field name="linkedGoals"><list> 3015 + <object ref="103"/> 3016 + </list> 3017 + </field> 3018 + </object> 3019 + </list> 3020 + </field> 3021 + <field name="notes"></field> 3022 + <field name="aumlText">start Warnings 3023 + actor A User 3024 + actor B Airport Sensor 3025 + actor C Forecaster 3026 + agent D GUIAgent 3027 + agent E AirportAgent 3028 + agent F ForecasterAgent 3029 + action E B subscribeAWSSourceAgent 3030 + action F C subscribeTAFSourceAgent 3031 + percept A D Subscription from User 3032 + message D E SubscriptionE 3033 + box loop 3034 + box loop 3035 + box opt 3036 + action E B Request Data 3037 + end opt 3038 + percept B E AWS DataE 3039 + percept C F TAF dataE 3040 + message F E ForecastE 3041 + end loop 3042 + box opt 3043 + message E D WarningE 3044 + action D A Show Warning 3045 + end opt 3046 + end loop</field> 3047 + <field name="aumlInteractions"><list> 3048 + <object type="InteractionDistributionPair" id="169"> 3049 + <field name="type"> 3050 + <object ref="64"/> 3051 + </field> 3052 + <field name="origins"><list> 3053 + <object ref="56"/> 3054 + </list> 3055 + </field> 3056 + <field name="targets"><list> 3057 + <object ref="61"/> 3058 + </list> 3059 + </field> 3060 + </object> 3061 + 3062 + <object type="InteractionDistributionPair" id="170"> 3063 + <field name="type"> 3064 + <object ref="113"/> 3065 + </field> 3066 + <field name="origins"><list> 3067 + <object ref="68"/> 3068 + </list> 3069 + </field> 3070 + <field name="targets"><list> 3071 + <object ref="114"/> 3072 + </list> 3073 + </field> 3074 + </object> 3075 + 3076 + <object type="InteractionDistributionPair" id="171"> 3077 + <field name="type"> 3078 + <object ref="77"/> 3079 + </field> 3080 + <field name="origins"><list> 3081 + <object ref="108"/> 3082 + </list> 3083 + </field> 3084 + <field name="targets"><list> 3085 + <object ref="75"/> 3086 + </list> 3087 + </field> 3088 + </object> 3089 + 3090 + <object type="InteractionDistributionPair" id="172"> 3091 + <field name="type"> 3092 + <object ref="73"/> 3093 + </field> 3094 + <field name="origins"><list> 3095 + <object ref="75"/> 3096 + </list> 3097 + </field> 3098 + <field name="targets"><list> 3099 + <object ref="56"/> 3100 + </list> 3101 + </field> 3102 + </object> 3103 + 3104 + <object type="InteractionDistributionPair" id="173"> 3105 + <field name="type"> 3106 + <object ref="60"/> 3107 + </field> 3108 + <field name="origins"><list> 3109 + <object ref="56"/> 3110 + </list> 3111 + </field> 3112 + <field name="targets"><list> 3113 + <object ref="61"/> 3114 + </list> 3115 + </field> 3116 + </object> 3117 + 3118 + <object type="InteractionDistributionPair" id="174"> 3119 + <field name="type"> 3120 + <object ref="62"/> 3121 + </field> 3122 + <field name="origins"><list> 3123 + <object ref="61"/> 3124 + </list> 3125 + </field> 3126 + <field name="targets"><list> 3127 + <object ref="56"/> 3128 + </list> 3129 + </field> 3130 + </object> 3131 + 3132 + <object type="InteractionDistributionPair" id="175"> 3133 + <field name="type"> 3134 + <object ref="70"/> 3135 + </field> 3136 + <field name="origins"><list> 3137 + <object ref="114"/> 3138 + </list> 3139 + </field> 3140 + <field name="targets"><list> 3141 + <object ref="68"/> 3142 + </list> 3143 + </field> 3144 + </object> 3145 + 3146 + <object type="InteractionDistributionPair" id="176"> 3147 + <field name="type"> 3148 + <object ref="54"/> 3149 + </field> 3150 + <field name="origins"><list> 3151 + <object ref="68"/> 3152 + </list> 3153 + </field> 3154 + <field name="targets"><list> 3155 + <object ref="56"/> 3156 + </list> 3157 + </field> 3158 + </object> 3159 + 3160 + <object type="InteractionDistributionPair" id="177"> 3161 + <field name="type"> 3162 + <object ref="96"/> 3163 + </field> 3164 + <field name="origins"><list> 3165 + <object ref="56"/> 3166 + </list> 3167 + </field> 3168 + <field name="targets"><list> 3169 + <object ref="75"/> 3170 + </list> 3171 + </field> 3172 + </object> 3173 + 3174 + <object type="InteractionDistributionPair" id="178"> 3175 + <field name="type"> 3176 + <object ref="107"/> 3177 + </field> 3178 + <field name="origins"><list> 3179 + <object ref="75"/> 3180 + </list> 3181 + </field> 3182 + <field name="targets"><list> 3183 + <object ref="108"/> 3184 + </list> 3185 + </field> 3186 + </object> 3187 + </list> 3188 + </field> 3189 + </object> 3190 + 3191 + <object ref="66"/> 3192 + </list> 3193 + </field> 3194 + <field name="externalPath"></field> 3195 + </object> 3196 + </list> 3197 + </field> 3198 + <field name="goals"><list> 3199 + <object type="Goal" id="179"> 3200 + <base type="Entity"> 3201 + <field name="name">Send to airports</field> 3202 + <field name="description">Receive all data from the forecaster and send relevant data to each airport</field> 3203 + <field name="uniqueId">198</field> 3204 + <field name="codeName">Send to airports</field> 3205 + </base> 3206 + 3207 + </object> 3208 + </list> 3209 + </field> 3210 + <field name="outgoingMessages"><list> 3211 + <object ref="134"/> 3212 + </list> 3213 + </field> 3214 + <field name="context">Always true;</field> 3215 + <field name="failure">N/A</field> 3216 + <field name="failureRecovery">N/A</field> 3217 + <field name="procedure">Receive data 3218 + Split data into individual airports 3219 + Send to each airport</field> 3220 + </object> 3221 + </list> 3222 + </field> 3223 + <field name="protocols"><list> 3224 + <object ref="71"/> 3225 + 3226 + <object ref="66"/> 3227 + </list> 3228 + </field> 3229 + <field name="goals"><list> 3230 + <object ref="179"/> 3231 + </list> 3232 + </field> 3233 + <field name="percepts"><list> 3234 + <object ref="70"/> 3235 + </list> 3236 + </field> 3237 + <field name="actions"><list> 3238 + <object ref="113"/> 3239 + </list> 3240 + </field> 3241 + <field name="roles"><list> 3242 + <object type="Role" id="180"> 3243 + <base type="Entity"> 3244 + <field name="name">CreateForecast</field> 3245 + <field name="description">Role which covers the splitting of incoming TAF data and sending to appropriate airports</field> 3246 + <field name="uniqueId">197</field> 3247 + <field name="codeName">CreateForecast</field> 3248 + </base> 3249 + 3250 + <field name="goals"><list> 3251 + <object ref="179"/> 3252 + </list> 3253 + </field> 3254 + <field name="percepts"><list> 3255 + <object ref="70"/> 3256 + </list> 3257 + </field> 3258 + </object> 3259 + </list> 3260 + </field> 3261 + <field name="messages"><list> 3262 + <object ref="133"/> 3263 + </list> 3264 + </field> 3265 + </object> 3266 + </list> 3267 + </field> 3268 + <field name="childDistributionPairs"><list> 3269 + <object ref="130"/> 3270 + 3271 + <object ref="133"/> 3272 + </list> 3273 + </field> 3274 + <field name="owner"> 3275 + <object ref="66"/> 3276 + </field> 3277 + </object> 3278 + </list> 3279 + </field> 3280 + <field name="protocolDistributionPairs"><list> 3281 + <object ref="115"/> 3282 + </list> 3283 + </field> 3284 + <field name="agents"><list> 3285 + <object ref="68"/> 3286 + 3287 + <object ref="56"/> 3288 + </list> 3289 + </field> 3290 + <field name="actors"><list> 3291 + <object ref="61"/> 3292 + 3293 + <object ref="114"/> 3294 + </list> 3295 + </field> 3296 + <field name="percepts"><list> 3297 + <object ref="62"/> 3298 + 3299 + <object ref="70"/> 3300 + </list> 3301 + </field> 3302 + <field name="actions"><list> 3303 + <object ref="64"/> 3304 + 3305 + <object ref="113"/> 3306 + </list> 3307 + </field> 3308 + <field name="scenarios"><list> 3309 + <object ref="63"/> 3310 + </list> 3311 + </field> 3312 + <field name="notes"></field> 3313 + <field name="aumlText">start Data retrieval 3314 + actor A Airport Sensor 3315 + agent B AirportAgent 3316 + actor C Forecaster 3317 + agent D ForecasterAgent 3318 + action B A subscribeAWSSourceAgent 3319 + action D C subscribeTAFSourceAgent 3320 + box loop 3321 + box opt 3322 + action B A AWSRequest 3323 + end opt 3324 + percept A B AWS DataE 3325 + percept C D TAF dataE 3326 + message D B ForecastE 3327 + end loop 3328 + finish</field> 3329 + <field name="aumlInteractions"><list> 3330 + <object type="InteractionDistributionPair" id="181"> 3331 + <field name="type"> 3332 + <object ref="64"/> 3333 + </field> 3334 + <field name="origins"><list> 3335 + <object ref="56"/> 3336 + </list> 3337 + </field> 3338 + <field name="targets"><list> 3339 + <object ref="61"/> 3340 + </list> 3341 + </field> 3342 + </object> 3343 + 3344 + <object type="InteractionDistributionPair" id="182"> 3345 + <field name="type"> 3346 + <object ref="113"/> 3347 + </field> 3348 + <field name="origins"><list> 3349 + <object ref="68"/> 3350 + </list> 3351 + </field> 3352 + <field name="targets"><list> 3353 + <object ref="114"/> 3354 + </list> 3355 + </field> 3356 + </object> 3357 + 3358 + <object type="InteractionDistributionPair" id="183"> 3359 + <field name="type"> 3360 + <object ref="62"/> 3361 + </field> 3362 + <field name="origins"><list> 3363 + <object ref="61"/> 3364 + </list> 3365 + </field> 3366 + <field name="targets"><list> 3367 + <object ref="56"/> 3368 + </list> 3369 + </field> 3370 + </object> 3371 + 3372 + <object type="InteractionDistributionPair" id="184"> 3373 + <field name="type"> 3374 + <object ref="70"/> 3375 + </field> 3376 + <field name="origins"><list> 3377 + <object ref="114"/> 3378 + </list> 3379 + </field> 3380 + <field name="targets"><list> 3381 + <object ref="68"/> 3382 + </list> 3383 + </field> 3384 + </object> 3385 + 3386 + <object type="InteractionDistributionPair" id="185"> 3387 + <field name="type"> 3388 + <object ref="54"/> 3389 + </field> 3390 + <field name="origins"><list> 3391 + <object ref="68"/> 3392 + </list> 3393 + </field> 3394 + <field name="targets"><list> 3395 + <object ref="56"/> 3396 + </list> 3397 + </field> 3398 + </object> 3399 + </list> 3400 + </field> 3401 + </object> 3402 + 3403 + <object ref="71"/> 3404 + </list> 3405 + </field> 3406 + </object> 3407 + 3408 + <object ref="113"/> 3409 + </list> 3410 + </field> 3411 + <field name="codeName">Obtain Data Scenario scenario</field> 3412 + </base> 3413 + 3414 + <field name="context"></field> 3415 + <field name="steps"><list> 3416 + <object type="Step" id="186"> 3417 + <base type="Entity"> 3418 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=243&gt;</field> 3419 + <field name="description">Everything required to obtain AWS data from the Airport Sensors</field> 3420 + <field name="uniqueId">243</field> 3421 + </base> 3422 + 3423 + <field name="step"> 3424 + <object type="Scenario" id="187"> 3425 + <base type="Entity"> 3426 + <field name="name">Obtain AWS data Scenario scenario</field> 3427 + <field name="description">This scenario covers the necessary processes to obtain AWS data. This includes subscribing to the AWS, receiving the data and storing it.</field> 3428 + <field name="uniqueId">241</field> 3429 + </base> 3430 + 3431 + <field name="context"></field> 3432 + <field name="steps"><list> 3433 + <object type="Step" id="188"> 3434 + <base type="Entity"> 3435 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=253&gt;</field> 3436 + <field name="description">Subscribe to the Airport sensor as a listener of data readings</field> 3437 + <field name="uniqueId">253</field> 3438 + </base> 3439 + 3440 + <field name="step"> 3441 + <object ref="64"/> 3442 + </field> 3443 + <field name="roles"><list> 3444 + <object type="Role" id="189"> 3445 + <base type="Entity"> 3446 + <field name="name">Obtain AWS data</field> 3447 + <field name="description">Role which covers the obtaining of AWS data and updating of necessary beliefs</field> 3448 + <field name="uniqueId">37</field> 3449 + <field name="codeName">Obtain AWS data</field> 3450 + </base> 3451 + 3452 + <field name="goals"><list> 3453 + <object ref="59"/> 3454 + 3455 + <object type="Goal" id="190"> 3456 + <base type="Entity"> 3457 + <field name="name">Request AWS Data</field> 3458 + <field name="description">[OPTIONAL] Send a request for AWS readings 3459 + </field> 3460 + <field name="uniqueId">14</field> 3461 + <field name="codeName">Request AWS Data</field> 3462 + </base> 3463 + 3464 + </object> 3465 + 3466 + <object ref="58"/> 3467 + </list> 3468 + </field> 3469 + <field name="actions"><list> 3470 + <object ref="60"/> 3471 + 3472 + <object ref="64"/> 3473 + </list> 3474 + </field> 3475 + <field name="percepts"><list> 3476 + <object ref="62"/> 3477 + </list> 3478 + </field> 3479 + <field name="dataWritten"><list> 3480 + <object ref="137"/> 3481 + </list> 3482 + </field> 3483 + </object> 3484 + </list> 3485 + </field> 3486 + </object> 3487 + 3488 + <object type="Step" id="191"> 3489 + <base type="Entity"> 3490 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=254&gt;</field> 3491 + <field name="description">Message containing the current data readings at sensor</field> 3492 + <field name="uniqueId">254</field> 3493 + </base> 3494 + 3495 + <field name="step"> 3496 + <object ref="62"/> 3497 + </field> 3498 + </object> 3499 + 3500 + <object type="Step" id="192"> 3501 + <base type="Entity"> 3502 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=255&gt;</field> 3503 + <field name="description">Data is received and relevant data extracted</field> 3504 + <field name="uniqueId">255</field> 3505 + </base> 3506 + 3507 + <field name="step"> 3508 + <object ref="59"/> 3509 + </field> 3510 + <field name="roles"><list> 3511 + <object ref="189"/> 3512 + </list> 3513 + </field> 3514 + </object> 3515 + 3516 + <object type="Step" id="193"> 3517 + <base type="Entity"> 3518 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=256&gt;</field> 3519 + <field name="description">AWS beliefs are updated with new information</field> 3520 + <field name="uniqueId">256</field> 3521 + </base> 3522 + 3523 + <field name="step"> 3524 + <object ref="58"/> 3525 + </field> 3526 + <field name="dataWritten"><list> 3527 + <object ref="137"/> 3528 + </list> 3529 + </field> 3530 + <field name="roles"><list> 3531 + <object ref="189"/> 3532 + </list> 3533 + </field> 3534 + </object> 3535 + </list> 3536 + </field> 3537 + <field name="variation"></field> 3538 + </object> 3539 + </field> 3540 + <field name="dataWritten"><list> 3541 + <object ref="137"/> 3542 + </list> 3543 + </field> 3544 + <field name="roles"><list> 3545 + <object ref="189"/> 3546 + </list> 3547 + </field> 3548 + </object> 3549 + 3550 + <object type="Step" id="194"> 3551 + <base type="Entity"> 3552 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=246&gt;</field> 3553 + <field name="description">Everything required to obtain TAF data from the Forecaster</field> 3554 + <field name="uniqueId">246</field> 3555 + </base> 3556 + 3557 + <field name="step"> 3558 + <object type="Scenario" id="195"> 3559 + <base type="Entity"> 3560 + <field name="name">Obtain TAF data Scenario scenario</field> 3561 + <field name="description">This scenario covers the necessary processes to obtain forecasts. This includes the system subscribing to the forecaster, the data arriving for all airports and also covers the splitting of this information and sending to the appropriate airports.</field> 3562 + <field name="uniqueId">244</field> 3563 + </base> 3564 + 3565 + <field name="context"></field> 3566 + <field name="steps"><list> 3567 + <object type="Step" id="196"> 3568 + <base type="Entity"> 3569 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=247&gt;</field> 3570 + <field name="description">A message is sent to the Forecaster, registering an agent as a listener to forecasting information</field> 3571 + <field name="uniqueId">247</field> 3572 + </base> 3573 + 3574 + <field name="step"> 3575 + <object ref="113"/> 3576 + </field> 3577 + <field name="roles"><list> 3578 + <object ref="180"/> 3579 + </list> 3580 + </field> 3581 + </object> 3582 + 3583 + <object type="Step" id="197"> 3584 + <base type="Entity"> 3585 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=249&gt;</field> 3586 + <field name="description">Incoming forecasts for all airports for the next 12 hours.</field> 3587 + <field name="uniqueId">249</field> 3588 + </base> 3589 + 3590 + <field name="step"> 3591 + <object ref="70"/> 3592 + </field> 3593 + <field name="roles"><list> 3594 + <object ref="180"/> 3595 + </list> 3596 + </field> 3597 + </object> 3598 + 3599 + <object type="Step" id="198"> 3600 + <base type="Entity"> 3601 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=250&gt;</field> 3602 + <field name="description">Forecasts are split into a forecast for each airport and sent to the relevant agents</field> 3603 + <field name="uniqueId">250</field> 3604 + </base> 3605 + 3606 + <field name="step"> 3607 + <object ref="179"/> 3608 + </field> 3609 + <field name="roles"><list> 3610 + <object ref="180"/> 3611 + </list> 3612 + </field> 3613 + </object> 3614 + 3615 + <object type="Step" id="199"> 3616 + <base type="Entity"> 3617 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=251&gt;</field> 3618 + <field name="description">Recieve the incoming Forecast and extract relevant data</field> 3619 + <field name="uniqueId">251</field> 3620 + </base> 3621 + 3622 + <field name="step"> 3623 + <object type="Goal" id="200"> 3624 + <base type="Entity"> 3625 + <field name="name">Recieve TAF data</field> 3626 + <field name="description">Recieve the TAF data from forecaster 3627 + </field> 3628 + <field name="uniqueId">17</field> 3629 + <field name="codeName">Recieve TAF data</field> 3630 + </base> 3631 + 3632 + </object> 3633 + </field> 3634 + <field name="roles"><list> 3635 + <object type="Role" id="201"> 3636 + <base type="Entity"> 3637 + <field name="name">Obtain TAF data</field> 3638 + <field name="description">Role which covers obtaining TAF data for an individual airport and updating appropriate beliefs</field> 3639 + <field name="uniqueId">38</field> 3640 + <field name="codeName">Obtain TAF data</field> 3641 + </base> 3642 + 3643 + <field name="goals"><list> 3644 + <object type="Goal" id="202"> 3645 + <base type="Entity"> 3646 + <field name="name">Update TAF Beliefs</field> 3647 + <field name="description">Update forecast beliefsets with up to date forecasts</field> 3648 + <field name="uniqueId">18</field> 3649 + <field name="codeName">Update TAF Beliefs</field> 3650 + </base> 3651 + 3652 + </object> 3653 + 3654 + <object ref="200"/> 3655 + </list> 3656 + </field> 3657 + <field name="dataWritten"><list> 3658 + <object ref="50"/> 3659 + </list> 3660 + </field> 3661 + </object> 3662 + </list> 3663 + </field> 3664 + </object> 3665 + 3666 + <object type="Step" id="203"> 3667 + <base type="Entity"> 3668 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=252&gt;</field> 3669 + <field name="description">Update the Forecasts beliefs with new information.</field> 3670 + <field name="uniqueId">252</field> 3671 + </base> 3672 + 3673 + <field name="step"> 3674 + <object ref="202"/> 3675 + </field> 3676 + <field name="dataWritten"><list> 3677 + <object ref="50"/> 3678 + </list> 3679 + </field> 3680 + <field name="roles"><list> 3681 + <object ref="201"/> 3682 + </list> 3683 + </field> 3684 + </object> 3685 + </list> 3686 + </field> 3687 + <field name="variation"></field> 3688 + </object> 3689 + </field> 3690 + <field name="dataWritten"><list> 3691 + <object ref="50"/> 3692 + </list> 3693 + </field> 3694 + <field name="roles"><list> 3695 + <object ref="180"/> 3696 + </list> 3697 + </field> 3698 + </object> 3699 + </list> 3700 + </field> 3701 + <field name="variation"></field> 3702 + <field name="linkedGoals"><list> 3703 + <object type="Goal" id="204"> 3704 + <base type="Entity"> 3705 + <field name="name">Obtain Data Scenario</field> 3706 + <field name="description">Obtain Data from relevant sources and store appropriately</field> 3707 + <field name="uniqueId">5</field> 3708 + <field name="codeName">Obtain Data Scenario</field> 3709 + </base> 3710 + 3711 + <field name="subGoals"><list> 3712 + <object type="Goal" id="205"> 3713 + <base type="Entity"> 3714 + <field name="name">Obtain TAF data Scenario</field> 3715 + <field name="description">Obtain and update beliefs for the TAF data 3716 + </field> 3717 + <field name="uniqueId">13</field> 3718 + <field name="codeName">Obtain TAF</field> 3719 + </base> 3720 + 3721 + <field name="subGoals"><list> 3722 + <object ref="200"/> 3723 + 3724 + <object ref="202"/> 3725 + 3726 + <object ref="179"/> 3727 + </list> 3728 + </field> 3729 + </object> 3730 + 3731 + <object type="Goal" id="206"> 3732 + <base type="Entity"> 3733 + <field name="name">Obtain AWS data Scenario</field> 3734 + <field name="description">Obtain AWS data from the sensors and store appropriately</field> 3735 + <field name="uniqueId">242</field> 3736 + </base> 3737 + 3738 + <field name="subGoals"><list> 3739 + <object ref="190"/> 3740 + 3741 + <object ref="59"/> 3742 + 3743 + <object ref="58"/> 3744 + </list> 3745 + </field> 3746 + </object> 3747 + </list> 3748 + </field> 3749 + </object> 3750 + </list> 3751 + </field> 3752 + </object> 3753 + </list> 3754 + </field> 3755 + <field name="codeName">AWS DataE</field> 3756 + </base> 3757 + 3758 + </base> 3759 + 3760 + <field name="source"></field> 3761 + <field name="informationCarried">Rainfall, wind speed, temperature and fog</field> 3762 + <field name="knowledgeUpdated">AWS data stores</field> 3763 + <field name="processing"></field> 3764 + <field name="frequency">Quarter hourly or more frequently if requested</field> 3765 + <field name="agentsResponding"><list> 3766 + <object ref="56"/> 3767 + 3768 + <object ref="65"/> 3769 + </list> 3770 + </field> 3771 + <field name="protocols"><list> 3772 + <object ref="66"/> 3773 + 3774 + <object ref="71"/> 3775 + </list> 3776 + </field> 3777 + <field name="externalPath"></field> 3778 + </object> 3779 + </list> 3780 + </field> 3781 + <field name="codeName">Airport Sensor</field> 3782 + </base> 3783 + 3784 + <field name="actions"><list> 3785 + <object ref="64"/> 3786 + 3787 + <object ref="60"/> 3788 + </list> 3789 + </field> 3790 + <field name="percepts"><list> 3791 + <object ref="62"/> 3792 + </list> 3793 + </field> 3794 + <field name="protocols"><list> 3795 + <object type="Protocol" id="207"> 3796 + <base type="Entity"> 3797 + <field name="uniqueId">218</field> 3798 + </base> 3799 + 3800 + </object> 3801 + 3802 + <object ref="66"/> 3803 + 3804 + <object ref="71"/> 3805 + </list> 3806 + </field> 3807 + </object> 3808 + </list> 3809 + </field> 3810 + <field name="codeName">Request Data</field> 3811 + </base> 3812 + 3813 + </base> 3814 + 3815 + <field name="parameters">None. This is because only one agent can be subscribed to a sensor so the data request can only originate from one location.</field> 3816 + <field name="durationDescription">N/A</field> 3817 + <field name="failureNotificationDescription">N/A</field> 3818 + <field name="partialChange">N/A</field> 3819 + <field name="sideEffects">Should result in incoming data from the AWS sensor</field> 3820 + <field name="agentsPerforming"><list> 3821 + <object ref="56"/> 3822 + </list> 3823 + </field> 3824 + <field name="protocols"><list> 3825 + <object ref="71"/> 3826 + </list> 3827 + </field> 3828 + </object> 3829 + </list> 3830 + </field> 3831 + <field name="percepts"><list> 3832 + <object ref="62"/> 3833 + </list> 3834 + </field> 3835 + <field name="includedPlans"><list> 3836 + <object type="Plan" id="208"> 3837 + <base type="Entity"> 3838 + <field name="name">RequestAWSP</field> 3839 + <field name="description">Sends a request to the Simulator for the most up to date AWS readings</field> 3840 + <field name="uniqueId">75</field> 3841 + <field name="codeName">RequestAWSP</field> 3842 + </base> 3843 + 3844 + <field name="triggers"><list> 3845 + <object type="MessageDistributionPair" id="209"> 3846 + <base type="Entity"> 3847 + <field name="name">planMessagePair-204</field> 3848 + <field name="uniqueId">204</field> 3849 + <field name="codeName">planMessagePair-204</field> 3850 + </base> 3851 + 3852 + <field name="type"> 3853 + <object type="Message" id="210"> 3854 + <base type="Interaction"> 3855 + <base type="Entity"> 3856 + <field name="name">AWSNeededE</field> 3857 + <field name="description">Posted when AWS readings are required. Not currently used.</field> 3858 + <field name="uniqueId">202</field> 3859 + <field name="codeName">AWSNeededE</field> 3860 + </base> 3861 + 3862 + </base> 3863 + 3864 + <field name="distribution"><list> 3865 + <object type="MessageDistributionPair" id="211"> 3866 + <base type="Entity"> 3867 + <field name="name">capabilityDiagramPair-203</field> 3868 + <field name="uniqueId">203</field> 3869 + <field name="codeName">capabilityDiagramPair-203</field> 3870 + </base> 3871 + 3872 + <field name="type"> 3873 + <object ref="210"/> 3874 + </field> 3875 + <field name="toEntities"><list> 3876 + <object ref="208"/> 3877 + </list> 3878 + </field> 3879 + <field name="childDistributionPairs"><list> 3880 + <object ref="209"/> 3881 + </list> 3882 + </field> 3883 + <field name="owner"> 3884 + <object ref="57"/> 3885 + </field> 3886 + </object> 3887 + 3888 + <object ref="209"/> 3889 + </list> 3890 + </field> 3891 + <field name="purpose">To indicate that up-to-date AWS readings are required from the sensor</field> 3892 + <field name="informationCarried"></field> 3893 + <field name="externalPath"></field> 3894 + </object> 3895 + </field> 3896 + <field name="parentDistributionPairs"><list> 3897 + <object ref="211"/> 3898 + </list> 3899 + </field> 3900 + <field name="owner"> 3901 + <object ref="208"/> 3902 + </field> 3903 + </object> 3904 + </list> 3905 + </field> 3906 + <field name="goals"><list> 3907 + <object ref="190"/> 3908 + </list> 3909 + </field> 3910 + <field name="actions"><list> 3911 + <object ref="60"/> 3912 + </list> 3913 + </field> 3914 + <field name="context">Always true</field> 3915 + <field name="failure">N/A</field> 3916 + <field name="failureRecovery">N/A</field> 3917 + <field name="procedure">Send Message to AWS sensor requesting up to date data</field> 3918 + </object> 3919 + 3920 + <object ref="140"/> 3921 + </list> 3922 + </field> 3923 + <field name="messages"><list> 3924 + <object ref="211"/> 3925 + </list> 3926 + </field> 3927 + <field name="data"><list> 3928 + <object ref="139"/> 3929 + </list> 3930 + </field> 3931 + <field name="externalPath"></field> 3932 + </object> 3933 + 3934 + <object ref="8"/> 3935 + 3936 + <object ref="33"/> 3937 + 3938 + <object ref="18"/> 3939 + </list> 3940 + </field> 3941 + <field name="includedPlans"><list> 3942 + <object ref="30"/> 3943 + 3944 + <object ref="52"/> 3945 + 3946 + <object ref="87"/> 3947 + </list> 3948 + </field> 3949 + <field name="protocols"><list> 3950 + <object ref="66"/> 3951 + 3952 + <object ref="71"/> 3953 + 3954 + <object ref="94"/> 3955 + </list> 3956 + </field> 3957 + <field name="goals"><list> 3958 + <object ref="59"/> 3959 + 3960 + <object ref="190"/> 3961 + 3962 + <object ref="58"/> 3963 + 3964 + <object ref="202"/> 3965 + 3966 + <object ref="200"/> 3967 + 3968 + <object ref="11"/> 3969 + 3970 + <object ref="12"/> 3971 + 3972 + <object ref="10"/> 3973 + 3974 + <object ref="35"/> 3975 + 3976 + <object ref="36"/> 3977 + 3978 + <object ref="37"/> 3979 + 3980 + <object ref="38"/> 3981 + 3982 + <object ref="21"/> 3983 + 3984 + <object ref="20"/> 3985 + 3986 + <object ref="106"/> 3987 + 3988 + <object ref="84"/> 3989 + 3990 + <object ref="13"/> 3991 + </list> 3992 + </field> 3993 + <field name="percepts"><list> 3994 + <object ref="62"/> 3995 + </list> 3996 + </field> 3997 + <field name="actions"><list> 3998 + <object ref="60"/> 3999 + 4000 + <object ref="64"/> 4001 + </list> 4002 + </field> 4003 + <field name="roles"><list> 4004 + <object ref="189"/> 4005 + 4006 + <object ref="201"/> 4007 + 4008 + <object ref="164"/> 4009 + 4010 + <object ref="162"/> 4011 + 4012 + <object ref="163"/> 4013 + 4014 + <object ref="166"/> 4015 + 4016 + <object ref="127"/> 4017 + </list> 4018 + </field> 4019 + <field name="messages"><list> 4020 + <object ref="98"/> 4021 + 4022 + <object ref="17"/> 4023 + 4024 + <object ref="90"/> 4025 + 4026 + <object ref="130"/> 4027 + 4028 + <object ref="32"/> 4029 + </list> 4030 + </field> 4031 + <field name="data"><list> 4032 + <object ref="138"/> 4033 + 4034 + <object ref="51"/> 4035 + 4036 + <object ref="86"/> 4037 + </list> 4038 + </field> 4039 + </object> 4040 + </list> 4041 + </field> 4042 + <field name="fromEntities"><list> 4043 + <object ref="68"/> 4044 + </list> 4045 + </field> 4046 + <field name="childDistributionPairs"><list> 4047 + <object ref="133"/> 4048 + 4049 + <object ref="130"/> 4050 + </list> 4051 + </field> 4052 + <field name="owner"> 4053 + <object ref="112"/> 4054 + </field> 4055 + </object> 4056 + 4057 + <object ref="133"/> 4058 + 4059 + <object ref="130"/> 4060 + 4061 + <object ref="131"/> 4062 + 4063 + <object ref="134"/> 4064 + 4065 + <object ref="53"/> 4066 + 4067 + <object ref="129"/> 4068 + 4069 + <object ref="67"/> 4070 + </list> 4071 + </field> 4072 + <field name="purpose"></field> 4073 + <field name="informationCarried"></field> 4074 + <field name="externalPath"></field> 4075 + </object> 4076 + </field> 4077 + <field name="parentDistributionPairs"><list> 4078 + <object ref="131"/> 4079 + 4080 + <object ref="130"/> 4081 + </list> 4082 + </field> 4083 + <field name="owner"> 4084 + <object ref="52"/> 4085 + </field> 4086 + </object> 4087 + </list> 4088 + </field> 4089 + <field name="data"><list> 4090 + <object type="DataConnection" id="212"> 4091 + <base type="Entity"> 4092 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=61&gt;</field> 4093 + <field name="uniqueId">61</field> 4094 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=61&gt;</field> 4095 + </base> 4096 + 4097 + <field name="type"> 4098 + <object ref="50"/> 4099 + </field> 4100 + <field name="writingEntities"><list> 4101 + <object ref="52"/> 4102 + </list> 4103 + </field> 4104 + <field name="parentConnection"> 4105 + <object ref="51"/> 4106 + </field> 4107 + </object> 4108 + 4109 + <object ref="51"/> 4110 + </list> 4111 + </field> 4112 + <field name="context">Always True;</field> 4113 + <field name="failure">N/A</field> 4114 + <field name="failureRecovery">N/A</field> 4115 + <field name="procedure">Process data and write to datastore</field> 4116 + </object> 4117 + </list> 4118 + </field> 4119 + <field name="childConnections"><list> 4120 + <object ref="212"/> 4121 + 4122 + <object ref="151"/> 4123 + 4124 + <object ref="49"/> 4125 + 4126 + <object ref="160"/> 4127 + </list> 4128 + </field> 4129 + </object> 4130 + 4131 + <object ref="212"/> 4132 + 4133 + <object ref="151"/> 4134 + 4135 + <object ref="49"/> 4136 + 4137 + <object ref="160"/> 4138 + </list> 4139 + </field> 4140 + <field name="externalPath"></field> 4141 + <field name="postedEvents"><list> 4142 + <object type="PostedEvent" id="213"> 4143 + <field name="type"> 4144 + <object ref="16"/> 4145 + </field> 4146 + </object> 4147 + </list> 4148 + </field> 4149 + </object> 4150 + </field> 4151 + <field name="readingEntities"><list> 4152 + <object ref="42"/> 4153 + 4154 + <object ref="39"/> 4155 + 4156 + <object ref="46"/> 4157 + 4158 + <object type="Plan" id="214"> 4159 + <base type="Entity"> 4160 + <field name="name">ReportHighRainChangeP</field> 4161 + <field name="description">Creates a immediate change in forecast warning</field> 4162 + <field name="uniqueId">123</field> 4163 + <field name="codeName">ReportHighRainChangeP</field> 4164 + </base> 4165 + 4166 + <field name="triggers"><list> 4167 + <object type="MessageDistributionPair" id="215"> 4168 + <base type="Entity"> 4169 + <field name="name">planMessagePair-186</field> 4170 + <field name="uniqueId">186</field> 4171 + <field name="codeName">planMessagePair-186</field> 4172 + </base> 4173 + 4174 + <field name="type"> 4175 + <object ref="16"/> 4176 + </field> 4177 + <field name="parentDistributionPairs"><list> 4178 + <object ref="41"/> 4179 + </list> 4180 + </field> 4181 + <field name="owner"> 4182 + <object ref="214"/> 4183 + </field> 4184 + </object> 4185 + </list> 4186 + </field> 4187 + <field name="goals"><list> 4188 + <object ref="38"/> 4189 + 4190 + <object ref="13"/> 4191 + </list> 4192 + </field> 4193 + <field name="outgoingMessages"><list> 4194 + <object type="MessageDistributionPair" id="216"> 4195 + <base type="Entity"> 4196 + <field name="name">planMessagePair-214</field> 4197 + <field name="uniqueId">214</field> 4198 + <field name="codeName">planMessagePair-214</field> 4199 + </base> 4200 + 4201 + <field name="type"> 4202 + <object ref="28"/> 4203 + </field> 4204 + <field name="parentDistributionPairs"><list> 4205 + <object ref="45"/> 4206 + </list> 4207 + </field> 4208 + <field name="owner"> 4209 + <object ref="214"/> 4210 + </field> 4211 + </object> 4212 + </list> 4213 + </field> 4214 + <field name="data"><list> 4215 + <object ref="49"/> 4216 + </list> 4217 + </field> 4218 + <field name="context">If there is a change in the forecast for high rain where high rain is considered about 10cm</field> 4219 + <field name="failure">N/A</field> 4220 + <field name="failureRecovery">N/A</field> 4221 + <field name="procedure">Post NewWarningE event with relevant data</field> 4222 + </object> 4223 + </list> 4224 + </field> 4225 + <field name="parentConnection"> 4226 + <object ref="51"/> 4227 + </field> 4228 + </object> 4229 + </list> 4230 + </field> 4231 + <field name="context">If there is a change in the forecast for temperatures below zero</field> 4232 + <field name="failure">N/A</field> 4233 + <field name="failureRecovery">N/A</field> 4234 + <field name="procedure">Post NewWarningE event with relevant data</field> 4235 + </object> 4236 + 4237 + <object ref="214"/> 4238 + </list> 4239 + </field> 4240 + <field name="parentDistributionPairs"><list> 4241 + <object ref="32"/> 4242 + </list> 4243 + </field> 4244 + <field name="childDistributionPairs"><list> 4245 + <object type="MessageDistributionPair" id="217"> 4246 + <base type="Entity"> 4247 + <field name="name">planMessagePair-211</field> 4248 + <field name="uniqueId">211</field> 4249 + <field name="codeName">planMessagePair-211</field> 4250 + </base> 4251 + 4252 + <field name="type"> 4253 + <object ref="28"/> 4254 + </field> 4255 + <field name="parentDistributionPairs"><list> 4256 + <object ref="45"/> 4257 + </list> 4258 + </field> 4259 + <field name="owner"> 4260 + <object ref="39"/> 4261 + </field> 4262 + </object> 4263 + 4264 + <object ref="44"/> 4265 + 4266 + <object ref="48"/> 4267 + 4268 + <object ref="216"/> 4269 + </list> 4270 + </field> 4271 + <field name="owner"> 4272 + <object ref="33"/> 4273 + </field> 4274 + </object> 4275 + </list> 4276 + </field> 4277 + <field name="owner"> 4278 + <object ref="42"/> 4279 + </field> 4280 + </object> 4281 + </list> 4282 + </field> 4283 + <field name="data"><list> 4284 + <object ref="49"/> 4285 + </list> 4286 + </field> 4287 + <field name="context">If there is a change in the forecast for fog</field> 4288 + <field name="failure">N/A</field> 4289 + <field name="failureRecovery">N/A</field> 4290 + <field name="procedure">Post NewWarningE event with relevant data</field> 4291 + </object> 4292 + 4293 + <object ref="46"/> 4294 + 4295 + <object ref="214"/> 4296 + </list> 4297 + </field> 4298 + <field name="fromEntities"><list> 4299 + <object ref="49"/> 4300 + </list> 4301 + </field> 4302 + <field name="parentDistributionPairs"><list> 4303 + <object ref="17"/> 4304 + </list> 4305 + </field> 4306 + <field name="childDistributionPairs"><list> 4307 + <object type="MessageDistributionPair" id="218"> 4308 + <base type="Entity"> 4309 + <field name="name">planMessagePair-104</field> 4310 + <field name="uniqueId">104</field> 4311 + <field name="codeName">planMessagePair-104</field> 4312 + </base> 4313 + 4314 + <field name="type"> 4315 + <object ref="16"/> 4316 + </field> 4317 + <field name="parentDistributionPairs"><list> 4318 + <object ref="41"/> 4319 + </list> 4320 + </field> 4321 + <field name="owner"> 4322 + <object type="Plan" id="219"> 4323 + <base type="Entity"> 4324 + <field name="uniqueId">103</field> 4325 + </base> 4326 + 4327 + </object> 4328 + </field> 4329 + </object> 4330 + 4331 + <object ref="40"/> 4332 + 4333 + <object ref="43"/> 4334 + 4335 + <object ref="47"/> 4336 + 4337 + <object ref="215"/> 4338 + </list> 4339 + </field> 4340 + <field name="owner"> 4341 + <object ref="33"/> 4342 + </field> 4343 + </object> 4344 + </list> 4345 + </field> 4346 + <field name="owner"> 4347 + <object ref="39"/> 4348 + </field> 4349 + </object> 4350 + </list> 4351 + </field> 4352 + <field name="outgoingMessages"><list> 4353 + <object ref="217"/> 4354 + </list> 4355 + </field> 4356 + <field name="data"><list> 4357 + <object ref="49"/> 4358 + </list> 4359 + </field> 4360 + <field name="context">If the presence of high wind (&gt;20 knots) has changed</field> 4361 + <field name="failure">N/A</field> 4362 + <field name="failureRecovery">N/A</field> 4363 + <field name="procedure">Post NewWarningE event with relevant data</field> 4364 + </object> 4365 + 4366 + <object ref="42"/> 4367 + 4368 + <object ref="46"/> 4369 + 4370 + <object ref="214"/> 4371 + </list> 4372 + </field> 4373 + <field name="messages"><list> 4374 + <object ref="41"/> 4375 + 4376 + <object ref="45"/> 4377 + </list> 4378 + </field> 4379 + <field name="data"><list> 4380 + <object ref="49"/> 4381 + </list> 4382 + </field> 4383 + <field name="externalPath"></field> 4384 + </object> 4385 + </list> 4386 + </field> 4387 + <field name="childDistributionPairs"><list> 4388 + <object ref="31"/> 4389 + 4390 + <object ref="148"/> 4391 + 4392 + <object ref="158"/> 4393 + 4394 + <object ref="45"/> 4395 + </list> 4396 + </field> 4397 + <field name="owner"> 4398 + <object ref="56"/> 4399 + </field> 4400 + </object> 4401 + </list> 4402 + </field> 4403 + <field name="owner"> 4404 + <object ref="30"/> 4405 + </field> 4406 + </object> 4407 + </list> 4408 + </field> 4409 + <field name="outgoingMessages"><list> 4410 + <object ref="110"/> 4411 + </list> 4412 + </field> 4413 + <field name="data"><list> 4414 + <object ref="126"/> 4415 + 4416 + <object ref="86"/> 4417 + </list> 4418 + </field> 4419 + <field name="context">Always true.</field> 4420 + <field name="failure">N/A</field> 4421 + <field name="failureRecovery">N/A</field> 4422 + <field name="procedure">Read warning information from NewWarningE 4423 + Get subscriptions from DB where airport matches warning 4424 + for each subscription 4425 + send WarningE</field> 4426 + </object> 4427 + </list> 4428 + </field> 4429 + <field name="childDistributionPairs"><list> 4430 + <object ref="31"/> 4431 + </list> 4432 + </field> 4433 + <field name="owner"> 4434 + <object ref="111"/> 4435 + </field> 4436 + </object> 4437 + 4438 + <object ref="31"/> 4439 + 4440 + <object ref="32"/> 4441 + 4442 + <object ref="148"/> 4443 + 4444 + <object ref="158"/> 4445 + 4446 + <object ref="45"/> 4447 + 4448 + <object ref="149"/> 4449 + 4450 + <object ref="150"/> 4451 + 4452 + <object ref="147"/> 4453 + 4454 + <object ref="217"/> 4455 + 4456 + <object ref="44"/> 4457 + 4458 + <object ref="48"/> 4459 + 4460 + <object ref="216"/> 4461 + 4462 + <object ref="159"/> 4463 + 4464 + <object ref="27"/> 4465 + 4466 + <object ref="157"/> 4467 + </list> 4468 + </field> 4469 + <field name="purpose"></field> 4470 + <field name="informationCarried"></field> 4471 + <field name="externalPath"></field> 4472 + </object> 4473 + </field> 4474 + <field name="parentDistributionPairs"><list> 4475 + <object ref="158"/> 4476 + </list> 4477 + </field> 4478 + <field name="owner"> 4479 + <object ref="25"/> 4480 + </field> 4481 + </object> 4482 + </list> 4483 + </field> 4484 + <field name="data"><list> 4485 + <object ref="160"/> 4486 + 4487 + <object ref="154"/> 4488 + </list> 4489 + </field> 4490 + <field name="context">If there is a discrepancy of 5 knots or more between the forecast wind and the actual reading</field> 4491 + <field name="failure">N/A</field> 4492 + <field name="failureRecovery">N/A</field> 4493 + <field name="procedure">Post NewWarningE event with relevant data</field> 4494 + </object> 4495 + 4496 + <object ref="155"/> 4497 + </list> 4498 + </field> 4499 + <field name="fromEntities"><list> 4500 + <object ref="160"/> 4501 + 4502 + <object ref="154"/> 4503 + </list> 4504 + </field> 4505 + <field name="parentDistributionPairs"><list> 4506 + <object ref="17"/> 4507 + </list> 4508 + </field> 4509 + <field name="childDistributionPairs"><list> 4510 + <object type="MessageDistributionPair" id="220"> 4511 + <base type="Entity"> 4512 + <field name="name">planMessagePair-126</field> 4513 + <field name="uniqueId">126</field> 4514 + <field name="codeName">planMessagePair-126</field> 4515 + </base> 4516 + 4517 + <field name="type"> 4518 + <object ref="16"/> 4519 + </field> 4520 + <field name="parentDistributionPairs"><list> 4521 + <object ref="24"/> 4522 + </list> 4523 + </field> 4524 + <field name="owner"> 4525 + <object type="Plan" id="221"> 4526 + <base type="Entity"> 4527 + <field name="uniqueId">125</field> 4528 + </base> 4529 + 4530 + </object> 4531 + </field> 4532 + </object> 4533 + 4534 + <object ref="23"/> 4535 + 4536 + <object ref="26"/> 4537 + 4538 + <object type="MessageDistributionPair" id="222"> 4539 + <base type="Entity"> 4540 + <field name="name">planMessagePair-191</field> 4541 + <field name="uniqueId">191</field> 4542 + <field name="codeName">planMessagePair-191</field> 4543 + </base> 4544 + 4545 + <field name="type"> 4546 + <object ref="16"/> 4547 + </field> 4548 + <field name="parentDistributionPairs"><list> 4549 + <object ref="24"/> 4550 + </list> 4551 + </field> 4552 + <field name="owner"> 4553 + <object type="Plan" id="223"> 4554 + <base type="Entity"> 4555 + <field name="uniqueId">190</field> 4556 + <field name="codeName">CalculateTrendP</field> 4557 + </base> 4558 + 4559 + </object> 4560 + </field> 4561 + </object> 4562 + 4563 + <object ref="156"/> 4564 + </list> 4565 + </field> 4566 + <field name="owner"> 4567 + <object ref="18"/> 4568 + </field> 4569 + </object> 4570 + </list> 4571 + </field> 4572 + <field name="owner"> 4573 + <object ref="22"/> 4574 + </field> 4575 + </object> 4576 + </list> 4577 + </field> 4578 + <field name="goals"><list> 4579 + <object ref="21"/> 4580 + </list> 4581 + </field> 4582 + <field name="outgoingMessages"><list> 4583 + <object ref="159"/> 4584 + </list> 4585 + </field> 4586 + <field name="data"><list> 4587 + <object ref="160"/> 4588 + 4589 + <object ref="154"/> 4590 + </list> 4591 + </field> 4592 + <field name="context">If there is a discrepancy between the forecast for fog and the actual reading</field> 4593 + <field name="failure">N/A</field> 4594 + <field name="failureRecovery">N/A</field> 4595 + <field name="procedure">Post NewWarningE event with relevant data</field> 4596 + </object> 4597 + 4598 + <object ref="25"/> 4599 + 4600 + <object ref="155"/> 4601 + </list> 4602 + </field> 4603 + <field name="messages"><list> 4604 + <object ref="24"/> 4605 + 4606 + <object ref="158"/> 4607 + </list> 4608 + </field> 4609 + <field name="data"><list> 4610 + <object ref="160"/> 4611 + 4612 + <object ref="154"/> 4613 + </list> 4614 + </field> 4615 + <field name="externalPath"></field> 4616 + </object> 4617 + 4618 + <object ref="33"/> 4619 + </list> 4620 + </field> 4621 + <field name="fromEntities"><list> 4622 + <object ref="138"/> 4623 + 4624 + <object ref="51"/> 4625 + </list> 4626 + </field> 4627 + <field name="childDistributionPairs"><list> 4628 + <object ref="144"/> 4629 + 4630 + <object ref="24"/> 4631 + 4632 + <object ref="41"/> 4633 + </list> 4634 + </field> 4635 + <field name="owner"> 4636 + <object ref="56"/> 4637 + </field> 4638 + </object> 4639 + 4640 + <object ref="144"/> 4641 + 4642 + <object ref="24"/> 4643 + 4644 + <object ref="41"/> 4645 + 4646 + <object ref="152"/> 4647 + 4648 + <object ref="218"/> 4649 + 4650 + <object ref="220"/> 4651 + 4652 + <object ref="15"/> 4653 + 4654 + <object ref="143"/> 4655 + 4656 + <object ref="146"/> 4657 + 4658 + <object ref="40"/> 4659 + 4660 + <object ref="43"/> 4661 + 4662 + <object ref="47"/> 4663 + 4664 + <object ref="215"/> 4665 + 4666 + <object ref="23"/> 4667 + 4668 + <object ref="26"/> 4669 + 4670 + <object ref="222"/> 4671 + 4672 + <object ref="156"/> 4673 + </list> 4674 + </field> 4675 + <field name="purpose"></field> 4676 + <field name="informationCarried"></field> 4677 + </object> 4678 + </field> 4679 + <field name="parentDistributionPairs"><list> 4680 + <object ref="144"/> 4681 + </list> 4682 + </field> 4683 + <field name="owner"> 4684 + <object ref="14"/> 4685 + </field> 4686 + </object> 4687 + </list> 4688 + </field> 4689 + <field name="goals"><list> 4690 + <object ref="10"/> 4691 + 4692 + <object ref="13"/> 4693 + </list> 4694 + </field> 4695 + <field name="outgoingMessages"><list> 4696 + <object ref="149"/> 4697 + </list> 4698 + </field> 4699 + <field name="data"><list> 4700 + <object ref="151"/> 4701 + 4702 + <object ref="141"/> 4703 + </list> 4704 + </field> 4705 + <field name="context">If wind is greater than 30 knots</field> 4706 + <field name="failure">N/A</field> 4707 + <field name="failureRecovery">N/A</field> 4708 + <field name="procedure">Post NewWarningE event with relevant data</field> 4709 + </object> 4710 + 4711 + <object ref="142"/> 4712 + 4713 + <object ref="145"/> 4714 + </list> 4715 + </field> 4716 + <field name="messages"><list> 4717 + <object ref="144"/> 4718 + 4719 + <object ref="148"/> 4720 + </list> 4721 + </field> 4722 + <field name="data"><list> 4723 + <object ref="141"/> 4724 + 4725 + <object ref="151"/> 4726 + </list> 4727 + </field> 4728 + <field name="externalPath"></field> 4729 + </object> 4730 + 4731 + <object ref="18"/> 4732 + 4733 + <object ref="33"/> 4734 + </list> 4735 + </field> 4736 + <field name="childConnections"><list> 4737 + <object type="DataConnection" id="224"> 4738 + <base type="Entity"> 4739 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=69&gt;</field> 4740 + <field name="uniqueId">69</field> 4741 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=69&gt;</field> 4742 + </base> 4743 + 4744 + <field name="type"> 4745 + <object ref="6"/> 4746 + </field> 4747 + <field name="writingEntities"><list> 4748 + <object ref="14"/> 4749 + 4750 + <object ref="142"/> 4751 + 4752 + <object ref="145"/> 4753 + </list> 4754 + </field> 4755 + <field name="parentConnection"> 4756 + <object ref="7"/> 4757 + </field> 4758 + </object> 4759 + 4760 + <object ref="5"/> 4761 + 4762 + <object type="DataConnection" id="225"> 4763 + <base type="Entity"> 4764 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=71&gt;</field> 4765 + <field name="uniqueId">71</field> 4766 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=71&gt;</field> 4767 + </base> 4768 + 4769 + <field name="type"> 4770 + <object ref="6"/> 4771 + </field> 4772 + <field name="writingEntities"><list> 4773 + <object ref="39"/> 4774 + 4775 + <object ref="42"/> 4776 + 4777 + <object ref="46"/> 4778 + 4779 + <object ref="214"/> 4780 + </list> 4781 + </field> 4782 + <field name="parentConnection"> 4783 + <object ref="7"/> 4784 + </field> 4785 + </object> 4786 + 4787 + <object type="DataConnection" id="226"> 4788 + <base type="Entity"> 4789 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=73&gt;</field> 4790 + <field name="uniqueId">73</field> 4791 + <field name="codeName">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.DataConnection ID=73&gt;</field> 4792 + </base> 4793 + 4794 + <field name="type"> 4795 + <object ref="6"/> 4796 + </field> 4797 + <field name="parentConnection"> 4798 + <object ref="7"/> 4799 + </field> 4800 + </object> 4801 + </list> 4802 + </field> 4803 + </object> 4804 + 4805 + <object ref="224"/> 4806 + 4807 + <object ref="5"/> 4808 + 4809 + <object ref="225"/> 4810 + 4811 + <object ref="226"/> 4812 + </list> 4813 + </field> 4814 + </object> 4815 + </field> 4816 + <field name="writingEntities"><list> 4817 + <object ref="22"/> 4818 + 4819 + <object ref="25"/> 4820 + 4821 + <object ref="155"/> 4822 + </list> 4823 + </field> 4824 + <field name="parentConnection"> 4825 + <object ref="7"/> 4826 + </field> 4827 + </object> 4828 + </field> 4829 + <field name="location"> 4830 + <object type="Coordinate" id="227"> 4831 + <field name="x">416</field> 4832 + <field name="y">388</field> 4833 + </object> 4834 + </field> 4835 + </object> 4836 + 4837 + <object type="DiagramEntitySetting" id="228"> 4838 + <field name="entity"> 4839 + <object ref="155"/> 4840 + </field> 4841 + <field name="location"> 4842 + <object type="Coordinate" id="229"> 4843 + <field name="x">336</field> 4844 + <field name="y">174</field> 4845 + </object> 4846 + </field> 4847 + </object> 4848 + 4849 + <object type="DiagramEntitySetting" id="230"> 4850 + <field name="entity"> 4851 + <object ref="158"/> 4852 + </field> 4853 + <field name="location"> 4854 + <object type="Coordinate" id="231"> 4855 + <field name="x">211</field> 4856 + <field name="y">346</field> 4857 + </object> 4858 + </field> 4859 + </object> 4860 + 4861 + <object type="DiagramEntitySetting" id="232"> 4862 + <field name="entity"> 4863 + <object ref="24"/> 4864 + </field> 4865 + <field name="location"> 4866 + <object type="Coordinate" id="233"> 4867 + <field name="x">220</field> 4868 + <field name="y">64</field> 4869 + </object> 4870 + </field> 4871 + </object> 4872 + 4873 + <object type="DiagramEntitySetting" id="234"> 4874 + <field name="entity"> 4875 + <object ref="160"/> 4876 + </field> 4877 + <field name="location"> 4878 + <object type="Coordinate" id="235"> 4879 + <field name="x">137</field> 4880 + <field name="y">271</field> 4881 + </object> 4882 + </field> 4883 + </object> 4884 + 4885 + <object type="DiagramEntitySetting" id="236"> 4886 + <field name="entity"> 4887 + <object ref="154"/> 4888 + </field> 4889 + <field name="location"> 4890 + <object type="Coordinate" id="237"> 4891 + <field name="x">291</field> 4892 + <field name="y">272</field> 4893 + </object> 4894 + </field> 4895 + </object> 4896 + 4897 + <object type="DiagramEntitySetting" id="238"> 4898 + <field name="entity"> 4899 + <object ref="22"/> 4900 + </field> 4901 + <field name="location"> 4902 + <object type="Coordinate" id="239"> 4903 + <field name="x">12</field> 4904 + <field name="y">174</field> 4905 + </object> 4906 + </field> 4907 + </object> 4908 + 4909 + <object type="DiagramEntitySetting" id="240"> 4910 + <field name="entity"> 4911 + <object ref="25"/> 4912 + </field> 4913 + <field name="location"> 4914 + <object type="Coordinate" id="241"> 4915 + <field name="x">172</field> 4916 + <field name="y">173</field> 4917 + </object> 4918 + </field> 4919 + </object> 4920 + </list> 4921 + </field> 4922 + </object> 4923 + 4924 + <object type="DiagramSettings" id="242"> 4925 + <field name="diagramId"> 4926 + <object type="DiagramId" id="243"> 4927 + <field name="stringId">au.edu.rmit.cs.prometheus.gui.diagram.capabilityoverview.CapabilityOverviewDiagramModel#56</field> 4928 + </object> 4929 + </field> 4930 + <field name="entitySettings"><list> 4931 + <object type="DiagramEntitySetting" id="244"> 4932 + <field name="entity"> 4933 + <object ref="45"/> 4934 + </field> 4935 + <field name="location"> 4936 + <object type="Coordinate" id="245"> 4937 + <field name="x">265</field> 4938 + <field name="y">337</field> 4939 + </object> 4940 + </field> 4941 + </object> 4942 + 4943 + <object type="DiagramEntitySetting" id="246"> 4944 + <field name="entity"> 4945 + <object ref="225"/> 4946 + </field> 4947 + <field name="location"> 4948 + <object type="Coordinate" id="247"> 4949 + <field name="x">390</field> 4950 + <field name="y">315</field> 4951 + </object> 4952 + </field> 4953 + </object> 4954 + 4955 + <object type="DiagramEntitySetting" id="248"> 4956 + <field name="entity"> 4957 + <object ref="41"/> 4958 + </field> 4959 + <field name="location"> 4960 + <object type="Coordinate" id="249"> 4961 + <field name="x">270</field> 4962 + <field name="y">29</field> 4963 + </object> 4964 + </field> 4965 + </object> 4966 + 4967 + <object type="DiagramEntitySetting" id="250"> 4968 + <field name="entity"> 4969 + <object ref="49"/> 4970 + </field> 4971 + <field name="location"> 4972 + <object type="Coordinate" id="251"> 4973 + <field name="x">272</field> 4974 + <field name="y">249</field> 4975 + </object> 4976 + </field> 4977 + </object> 4978 + 4979 + <object type="DiagramEntitySetting" id="252"> 4980 + <field name="entity"> 4981 + <object ref="42"/> 4982 + </field> 4983 + <field name="location"> 4984 + <object type="Coordinate" id="253"> 4985 + <field name="x">168</field> 4986 + <field name="y">176</field> 4987 + </object> 4988 + </field> 4989 + </object> 4990 + 4991 + <object type="DiagramEntitySetting" id="254"> 4992 + <field name="entity"> 4993 + <object ref="214"/> 4994 + </field> 4995 + <field name="location"> 4996 + <object type="Coordinate" id="255"> 4997 + <field name="x">487</field> 4998 + <field name="y">174</field> 4999 + </object> 5000 + </field> 5001 + </object> 5002 + 5003 + <object type="DiagramEntitySetting" id="256"> 5004 + <field name="entity"> 5005 + <object ref="39"/> 5006 + </field> 5007 + <field name="location"> 5008 + <object type="Coordinate" id="257"> 5009 + <field name="x">9</field> 5010 + <field name="y">177</field> 5011 + </object> 5012 + </field> 5013 + </object> 5014 + 5015 + <object type="DiagramEntitySetting" id="258"> 5016 + <field name="entity"> 5017 + <object ref="46"/> 5018 + </field> 5019 + <field name="location"> 5020 + <object type="Coordinate" id="259"> 5021 + <field name="x">302</field> 5022 + <field name="y">174</field> 5023 + </object> 5024 + </field> 5025 + </object> 5026 + </list> 5027 + </field> 5028 + </object> 5029 + 5030 + <object type="DiagramSettings" id="260"> 5031 + <field name="diagramId"> 5032 + <object type="DiagramId" id="261"> 5033 + <field name="stringId">au.edu.rmit.cs.prometheus.gui.diagram.capabilityoverview.CapabilityOverviewDiagramModel#55</field> 5034 + </object> 5035 + </field> 5036 + <field name="entitySettings"><list> 5037 + <object type="DiagramEntitySetting" id="262"> 5038 + <field name="entity"> 5039 + <object ref="148"/> 5040 + </field> 5041 + <field name="location"> 5042 + <object type="Coordinate" id="263"> 5043 + <field name="x">267</field> 5044 + <field name="y">359</field> 5045 + </object> 5046 + </field> 5047 + </object> 5048 + 5049 + <object type="DiagramEntitySetting" id="264"> 5050 + <field name="entity"> 5051 + <object ref="224"/> 5052 + </field> 5053 + <field name="location"> 5054 + <object type="Coordinate" id="265"> 5055 + <field name="x">385</field> 5056 + <field name="y">368</field> 5057 + </object> 5058 + </field> 5059 + </object> 5060 + 5061 + <object type="DiagramEntitySetting" id="266"> 5062 + <field name="entity"> 5063 + <object ref="145"/> 5064 + </field> 5065 + <field name="location"> 5066 + <object type="Coordinate" id="267"> 5067 + <field name="x">423</field> 5068 + <field name="y">161</field> 5069 + </object> 5070 + </field> 5071 + </object> 5072 + 5073 + <object type="DiagramEntitySetting" id="268"> 5074 + <field name="entity"> 5075 + <object ref="151"/> 5076 + </field> 5077 + <field name="location"> 5078 + <object type="Coordinate" id="269"> 5079 + <field name="x">224</field> 5080 + <field name="y">283</field> 5081 + </object> 5082 + </field> 5083 + </object> 5084 + 5085 + <object type="DiagramEntitySetting" id="270"> 5086 + <field name="entity"> 5087 + <object ref="142"/> 5088 + </field> 5089 + <field name="location"> 5090 + <object type="Coordinate" id="271"> 5091 + <field name="x">188</field> 5092 + <field name="y">161</field> 5093 + </object> 5094 + </field> 5095 + </object> 5096 + 5097 + <object type="DiagramEntitySetting" id="272"> 5098 + <field name="entity"> 5099 + <object ref="144"/> 5100 + </field> 5101 + <field name="location"> 5102 + <object type="Coordinate" id="273"> 5103 + <field name="x">273</field> 5104 + <field name="y">40</field> 5105 + </object> 5106 + </field> 5107 + </object> 5108 + 5109 + <object type="DiagramEntitySetting" id="274"> 5110 + <field name="entity"> 5111 + <object ref="141"/> 5112 + </field> 5113 + <field name="location"> 5114 + <object type="Coordinate" id="275"> 5115 + <field name="x">332</field> 5116 + <field name="y">284</field> 5117 + </object> 5118 + </field> 5119 + </object> 5120 + 5121 + <object type="DiagramEntitySetting" id="276"> 5122 + <field name="entity"> 5123 + <object ref="14"/> 5124 + </field> 5125 + <field name="location"> 5126 + <object type="Coordinate" id="277"> 5127 + <field name="x">38</field> 5128 + <field name="y">162</field> 5129 + </object> 5130 + </field> 5131 + </object> 5132 + </list> 5133 + </field> 5134 + </object> 5135 + 5136 + <object type="DiagramSettings" id="278"> 5137 + <field name="diagramId"> 5138 + <object type="DiagramId" id="279"> 5139 + <field name="stringId">au.edu.rmit.cs.prometheus.gui.diagram.agentoverview.AgentOverviewDiagramModel(id#48)</field> 5140 + </object> 5141 + </field> 5142 + <field name="entitySettings"><list> 5143 + <object type="DiagramEntitySetting" id="280"> 5144 + <field name="entity"> 5145 + <object ref="77"/> 5146 + </field> 5147 + <field name="location"> 5148 + <object type="Coordinate" id="281"> 5149 + <field name="y">180</field> 5150 + </object> 5151 + </field> 5152 + </object> 5153 + 5154 + <object type="DiagramEntitySetting" id="282"> 5155 + <field name="entity"> 5156 + <object ref="101"/> 5157 + </field> 5158 + <field name="location"> 5159 + <object type="Coordinate" id="283"> 5160 + <field name="x">239</field> 5161 + <field name="y">102</field> 5162 + </object> 5163 + </field> 5164 + </object> 5165 + 5166 + <object type="DiagramEntitySetting" id="284"> 5167 + <field name="entity"> 5168 + <object ref="92"/> 5169 + </field> 5170 + <field name="location"> 5171 + <object type="Coordinate" id="285"> 5172 + <field name="x">52</field> 5173 + <field name="y">29</field> 5174 + </object> 5175 + </field> 5176 + </object> 5177 + 5178 + <object type="DiagramEntitySetting" id="286"> 5179 + <field name="entity"> 5180 + <object ref="100"/> 5181 + </field> 5182 + <field name="location"> 5183 + <object type="Coordinate" id="287"> 5184 + <field name="x">244</field> 5185 + <field name="y">24</field> 5186 + </object> 5187 + </field> 5188 + </object> 5189 + 5190 + <object type="DiagramEntitySetting" id="288"> 5191 + <field name="entity"> 5192 + <object ref="18"/> 5193 + </field> 5194 + <field name="location"> 5195 + <object type="Coordinate" id="289"> 5196 + <field name="x">431</field> 5197 + <field name="y">228</field> 5198 + </object> 5199 + </field> 5200 + </object> 5201 + 5202 + <object type="DiagramEntitySetting" id="290"> 5203 + <field name="entity"> 5204 + <object type="Message" id="291"> 5205 + <base type="Interaction"> 5206 + <base type="Entity"> 5207 + <field name="name">GUISubscribeClickedE</field> 5208 + <field name="description">Indicates the the User GUI has attempted to subscribe to an airport</field> 5209 + <field name="uniqueId">199</field> 5210 + <field name="codeName">GUISubscribeClickedE</field> 5211 + </base> 5212 + 5213 + </base> 5214 + 5215 + <field name="purpose"></field> 5216 + <field name="informationCarried">The name of the airport to subscribe to</field> 5217 + <field name="externalToSystem">:true</field> 5218 + <field name="externalPath"></field> 5219 + </object> 5220 + </field> 5221 + <field name="location"> 5222 + <object type="Coordinate" id="292"> 5223 + <field name="x">220</field> 5224 + <field name="y">237</field> 5225 + </object> 5226 + </field> 5227 + </object> 5228 + 5229 + <object type="DiagramEntitySetting" id="293"> 5230 + <field name="entity"> 5231 + <object ref="107"/> 5232 + </field> 5233 + <field name="location"> 5234 + <object type="Coordinate" id="294"> 5235 + <field name="x">228</field> 5236 + <field name="y">185</field> 5237 + </object> 5238 + </field> 5239 + </object> 5240 + 5241 + <object type="DiagramEntitySetting" id="295"> 5242 + <field name="entity"> 5243 + <object ref="76"/> 5244 + </field> 5245 + <field name="location"> 5246 + <object type="Coordinate" id="296"> 5247 + <field name="x">28</field> 5248 + <field name="y">104</field> 5249 + </object> 5250 + </field> 5251 + </object> 5252 + </list> 5253 + </field> 5254 + </object> 5255 + 5256 + <object type="DiagramSettings" id="297"> 5257 + <field name="diagramId"> 5258 + <object type="DiagramId" id="298"> 5259 + <field name="stringId">System Overview</field> 5260 + </object> 5261 + </field> 5262 + <field name="entitySettings"><list> 5263 + <object type="DiagramEntitySetting" id="299"> 5264 + <field name="entity"> 5265 + <object ref="68"/> 5266 + </field> 5267 + <field name="location"> 5268 + <object type="Coordinate" id="300"> 5269 + <field name="x">154</field> 5270 + <field name="y">24</field> 5271 + </object> 5272 + </field> 5273 + </object> 5274 + 5275 + <object type="DiagramEntitySetting" id="301"> 5276 + <field name="entity"> 5277 + <object ref="118"/> 5278 + </field> 5279 + <field name="location"> 5280 + <object type="Coordinate" id="302"> 5281 + <field name="x">59</field> 5282 + <field name="y">230</field> 5283 + </object> 5284 + </field> 5285 + </object> 5286 + 5287 + <object type="DiagramEntitySetting" id="303"> 5288 + <field name="entity"> 5289 + <object ref="60"/> 5290 + </field> 5291 + <field name="location"> 5292 + <object type="Coordinate" id="304"> 5293 + <field name="x">405</field> 5294 + <field name="y">121</field> 5295 + </object> 5296 + </field> 5297 + </object> 5298 + 5299 + <object type="DiagramEntitySetting" id="305"> 5300 + <field name="entity"> 5301 + <object ref="117"/> 5302 + </field> 5303 + <field name="location"> 5304 + <object type="Coordinate" id="306"> 5305 + <field name="x">33</field> 5306 + <field name="y">99</field> 5307 + </object> 5308 + </field> 5309 + </object> 5310 + 5311 + <object type="DiagramEntitySetting" id="307"> 5312 + <field name="entity"> 5313 + <object ref="55"/> 5314 + </field> 5315 + <field name="location"> 5316 + <object type="Coordinate" id="308"> 5317 + <field name="x">192</field> 5318 + <field name="y">92</field> 5319 + </object> 5320 + </field> 5321 + </object> 5322 + 5323 + <object type="DiagramEntitySetting" id="309"> 5324 + <field name="entity"> 5325 + <object ref="62"/> 5326 + </field> 5327 + <field name="location"> 5328 + <object type="Coordinate" id="310"> 5329 + <field name="x">420</field> 5330 + <field name="y">151</field> 5331 + </object> 5332 + </field> 5333 + </object> 5334 + 5335 + <object type="DiagramEntitySetting" id="311"> 5336 + <field name="entity"> 5337 + <object ref="70"/> 5338 + </field> 5339 + <field name="location"> 5340 + <object type="Coordinate" id="312"> 5341 + <field name="x">365</field> 5342 + <field name="y">9</field> 5343 + </object> 5344 + </field> 5345 + </object> 5346 + 5347 + <object type="DiagramEntitySetting" id="313"> 5348 + <field name="entity"> 5349 + <object ref="113"/> 5350 + </field> 5351 + <field name="location"> 5352 + <object type="Coordinate" id="314"> 5353 + <field name="x">402</field> 5354 + <field name="y">56</field> 5355 + </object> 5356 + </field> 5357 + </object> 5358 + 5359 + <object type="DiagramEntitySetting" id="315"> 5360 + <field name="entity"> 5361 + <object ref="116"/> 5362 + </field> 5363 + <field name="location"> 5364 + <object type="Coordinate" id="316"> 5365 + <field name="x">275</field> 5366 + <field name="y">248</field> 5367 + </object> 5368 + </field> 5369 + </object> 5370 + 5371 + <object type="DiagramEntitySetting" id="317"> 5372 + <field name="entity"> 5373 + <object ref="107"/> 5374 + </field> 5375 + <field name="location"> 5376 + <object type="Coordinate" id="318"> 5377 + <field name="x">263</field> 5378 + <field name="y">386</field> 5379 + </object> 5380 + </field> 5381 + </object> 5382 + 5383 + <object type="DiagramEntitySetting" id="319"> 5384 + <field name="entity"> 5385 + <object ref="64"/> 5386 + </field> 5387 + <field name="location"> 5388 + <object type="Coordinate" id="320"> 5389 + <field name="x">401</field> 5390 + <field name="y">203</field> 5391 + </object> 5392 + </field> 5393 + </object> 5394 + 5395 + <object type="DiagramEntitySetting" id="321"> 5396 + <field name="entity"> 5397 + <object ref="56"/> 5398 + </field> 5399 + <field name="location"> 5400 + <object type="Coordinate" id="322"> 5401 + <field name="x">259</field> 5402 + <field name="y">155</field> 5403 + </object> 5404 + </field> 5405 + </object> 5406 + 5407 + <object type="DiagramEntitySetting" id="323"> 5408 + <field name="entity"> 5409 + <object ref="115"/> 5410 + </field> 5411 + <field name="location"> 5412 + <object type="Coordinate" id="324"> 5413 + <field name="x">277</field> 5414 + <field name="y">93</field> 5415 + </object> 5416 + </field> 5417 + </object> 5418 + 5419 + <object type="DiagramEntitySetting" id="325"> 5420 + <field name="entity"> 5421 + <object ref="77"/> 5422 + </field> 5423 + <field name="location"> 5424 + <object type="Coordinate" id="326"> 5425 + <field name="y">326</field> 5426 + </object> 5427 + </field> 5428 + </object> 5429 + 5430 + <object type="DiagramEntitySetting" id="327"> 5431 + <field name="entity"> 5432 + <object ref="97"/> 5433 + </field> 5434 + <field name="location"> 5435 + <object type="Coordinate" id="328"> 5436 + <field name="x">210</field> 5437 + <field name="y">242</field> 5438 + </object> 5439 + </field> 5440 + </object> 5441 + 5442 + <object type="DiagramEntitySetting" id="329"> 5443 + <field name="entity"> 5444 + <object ref="75"/> 5445 + </field> 5446 + <field name="location"> 5447 + <object type="Coordinate" id="330"> 5448 + <field name="x">278</field> 5449 + <field name="y">335</field> 5450 + </object> 5451 + </field> 5452 + </object> 5453 + 5454 + <object type="DiagramEntitySetting" id="331"> 5455 + <field name="entity"> 5456 + <object ref="74"/> 5457 + </field> 5458 + <field name="location"> 5459 + <object type="Coordinate" id="332"> 5460 + <field name="x">375</field> 5461 + <field name="y">244</field> 5462 + </object> 5463 + </field> 5464 + </object> 5465 + </list> 5466 + </field> 5467 + </object> 5468 + 5469 + <object type="DiagramSettings" id="333"> 5470 + <field name="diagramId"> 5471 + <object type="DiagramId" id="334"> 5472 + <field name="stringId">Goal Overview</field> 5473 + </object> 5474 + </field> 5475 + <field name="entitySettings"><list> 5476 + <object type="DiagramEntitySetting" id="335"> 5477 + <field name="entity"> 5478 + <object ref="204"/> 5479 + </field> 5480 + <field name="location"> 5481 + <object type="Coordinate" id="336"> 5482 + <field name="x">137</field> 5483 + <field name="y">13</field> 5484 + </object> 5485 + </field> 5486 + </object> 5487 + 5488 + <object type="DiagramEntitySetting" id="337"> 5489 + <field name="entity"> 5490 + <object ref="103"/> 5491 + </field> 5492 + <field name="location"> 5493 + <object type="Coordinate" id="338"> 5494 + <field name="x">518</field> 5495 + <field name="y">12</field> 5496 + </object> 5497 + </field> 5498 + </object> 5499 + 5500 + <object type="DiagramEntitySetting" id="339"> 5501 + <field name="entity"> 5502 + <object ref="179"/> 5503 + </field> 5504 + <field name="location"> 5505 + <object type="Coordinate" id="340"> 5506 + <field name="x">232</field> 5507 + <field name="y">87</field> 5508 + </object> 5509 + </field> 5510 + </object> 5511 + 5512 + <object type="DiagramEntitySetting" id="341"> 5513 + <field name="entity"> 5514 + <object ref="205"/> 5515 + </field> 5516 + <field name="location"> 5517 + <object type="Coordinate" id="342"> 5518 + <field name="x">267</field> 5519 + <field name="y">57</field> 5520 + </object> 5521 + </field> 5522 + </object> 5523 + 5524 + <object type="DiagramEntitySetting" id="343"> 5525 + <field name="entity"> 5526 + <object ref="190"/> 5527 + </field> 5528 + <field name="location"> 5529 + <object type="Coordinate" id="344"> 5530 + <field name="x">7</field> 5531 + <field name="y">100</field> 5532 + </object> 5533 + </field> 5534 + </object> 5535 + 5536 + <object type="DiagramEntitySetting" id="345"> 5537 + <field name="entity"> 5538 + <object ref="59"/> 5539 + </field> 5540 + <field name="location"> 5541 + <object type="Coordinate" id="346"> 5542 + <field name="x">43</field> 5543 + <field name="y">135</field> 5544 + </object> 5545 + </field> 5546 + </object> 5547 + 5548 + <object type="DiagramEntitySetting" id="347"> 5549 + <field name="entity"> 5550 + <object ref="84"/> 5551 + </field> 5552 + <field name="location"> 5553 + <object type="Coordinate" id="348"> 5554 + <field name="x">126</field> 5555 + <field name="y">228</field> 5556 + </object> 5557 + </field> 5558 + </object> 5559 + 5560 + <object type="DiagramEntitySetting" id="349"> 5561 + <field name="entity"> 5562 + <object ref="200"/> 5563 + </field> 5564 + <field name="location"> 5565 + <object type="Coordinate" id="350"> 5566 + <field name="x">280</field> 5567 + <field name="y">120</field> 5568 + </object> 5569 + </field> 5570 + </object> 5571 + 5572 + <object type="DiagramEntitySetting" id="351"> 5573 + <field name="entity"> 5574 + <object ref="58"/> 5575 + </field> 5576 + <field name="location"> 5577 + <object type="Coordinate" id="352"> 5578 + <field name="x">135</field> 5579 + <field name="y">109</field> 5580 + </object> 5581 + </field> 5582 + </object> 5583 + 5584 + <object type="DiagramEntitySetting" id="353"> 5585 + <field name="entity"> 5586 + <object ref="104"/> 5587 + </field> 5588 + <field name="location"> 5589 + <object type="Coordinate" id="354"> 5590 + <field name="x">331</field> 5591 + <field name="y">177</field> 5592 + </object> 5593 + </field> 5594 + </object> 5595 + 5596 + <object type="DiagramEntitySetting" id="355"> 5597 + <field name="entity"> 5598 + <object ref="202"/> 5599 + </field> 5600 + <field name="location"> 5601 + <object type="Coordinate" id="356"> 5602 + <field name="x">357</field> 5603 + <field name="y">94</field> 5604 + </object> 5605 + </field> 5606 + </object> 5607 + 5608 + <object type="DiagramEntitySetting" id="357"> 5609 + <field name="entity"> 5610 + <object ref="19"/> 5611 + </field> 5612 + <field name="location"> 5613 + <object type="Coordinate" id="358"> 5614 + <field name="x">342</field> 5615 + <field name="y">275</field> 5616 + </object> 5617 + </field> 5618 + </object> 5619 + 5620 + <object type="DiagramEntitySetting" id="359"> 5621 + <field name="entity"> 5622 + <object ref="34"/> 5623 + </field> 5624 + <field name="location"> 5625 + <object type="Coordinate" id="360"> 5626 + <field name="x">105</field> 5627 + <field name="y">275</field> 5628 + </object> 5629 + </field> 5630 + </object> 5631 + 5632 + <object type="DiagramEntitySetting" id="361"> 5633 + <field name="entity"> 5634 + <object ref="13"/> 5635 + </field> 5636 + <field name="location"> 5637 + <object type="Coordinate" id="362"> 5638 + <field name="x">456</field> 5639 + <field name="y">137</field> 5640 + </object> 5641 + </field> 5642 + </object> 5643 + 5644 + <object type="DiagramEntitySetting" id="363"> 5645 + <field name="entity"> 5646 + <object ref="20"/> 5647 + </field> 5648 + <field name="location"> 5649 + <object type="Coordinate" id="364"> 5650 + <field name="x">314</field> 5651 + <field name="y">359</field> 5652 + </object> 5653 + </field> 5654 + </object> 5655 + 5656 + <object type="DiagramEntitySetting" id="365"> 5657 + <field name="entity"> 5658 + <object ref="9"/> 5659 + </field> 5660 + <field name="location"> 5661 + <object type="Coordinate" id="366"> 5662 + <field name="x">552</field> 5663 + <field name="y">271</field> 5664 + </object> 5665 + </field> 5666 + </object> 5667 + 5668 + <object type="DiagramEntitySetting" id="367"> 5669 + <field name="entity"> 5670 + <object ref="21"/> 5671 + </field> 5672 + <field name="location"> 5673 + <object type="Coordinate" id="368"> 5674 + <field name="x">447</field> 5675 + <field name="y">355</field> 5676 + </object> 5677 + </field> 5678 + </object> 5679 + 5680 + <object type="DiagramEntitySetting" id="369"> 5681 + <field name="entity"> 5682 + <object ref="11"/> 5683 + </field> 5684 + <field name="location"> 5685 + <object type="Coordinate" id="370"> 5686 + <field name="x">437</field> 5687 + <field name="y">396</field> 5688 + </object> 5689 + </field> 5690 + </object> 5691 + 5692 + <object type="DiagramEntitySetting" id="371"> 5693 + <field name="entity"> 5694 + <object ref="10"/> 5695 + </field> 5696 + <field name="location"> 5697 + <object type="Coordinate" id="372"> 5698 + <field name="x">601</field> 5699 + <field name="y">357</field> 5700 + </object> 5701 + </field> 5702 + </object> 5703 + 5704 + <object type="DiagramEntitySetting" id="373"> 5705 + <field name="entity"> 5706 + <object ref="35"/> 5707 + </field> 5708 + <field name="location"> 5709 + <object type="Coordinate" id="374"> 5710 + <field name="x">1</field> 5711 + <field name="y">322</field> 5712 + </object> 5713 + </field> 5714 + </object> 5715 + 5716 + <object type="DiagramEntitySetting" id="375"> 5717 + <field name="entity"> 5718 + <object ref="124"/> 5719 + </field> 5720 + <field name="location"> 5721 + <object type="Coordinate" id="376"> 5722 + <field name="x">90</field> 5723 + <field name="y">175</field> 5724 + </object> 5725 + </field> 5726 + </object> 5727 + 5728 + <object type="DiagramEntitySetting" id="377"> 5729 + <field name="entity"> 5730 + <object ref="12"/> 5731 + </field> 5732 + <field name="location"> 5733 + <object type="Coordinate" id="378"> 5734 + <field name="x">674</field> 5735 + <field name="y">396</field> 5736 + </object> 5737 + </field> 5738 + </object> 5739 + 5740 + <object type="DiagramEntitySetting" id="379"> 5741 + <field name="entity"> 5742 + <object ref="37"/> 5743 + </field> 5744 + <field name="location"> 5745 + <object type="Coordinate" id="380"> 5746 + <field name="x">163</field> 5747 + <field name="y">364</field> 5748 + </object> 5749 + </field> 5750 + </object> 5751 + 5752 + <object type="DiagramEntitySetting" id="381"> 5753 + <field name="entity"> 5754 + <object ref="36"/> 5755 + </field> 5756 + <field name="location"> 5757 + <object type="Coordinate" id="382"> 5758 + <field name="x">44</field> 5759 + <field name="y">363</field> 5760 + </object> 5761 + </field> 5762 + </object> 5763 + 5764 + <object type="DiagramEntitySetting" id="383"> 5765 + <field name="entity"> 5766 + <object ref="81"/> 5767 + </field> 5768 + <field name="location"> 5769 + <object type="Coordinate" id="384"> 5770 + <field name="x">5</field> 5771 + <field name="y">228</field> 5772 + </object> 5773 + </field> 5774 + </object> 5775 + 5776 + <object type="DiagramEntitySetting" id="385"> 5777 + <field name="entity"> 5778 + <object ref="106"/> 5779 + </field> 5780 + <field name="location"> 5781 + <object type="Coordinate" id="386"> 5782 + <field name="x">565</field> 5783 + <field name="y">136</field> 5784 + </object> 5785 + </field> 5786 + </object> 5787 + 5788 + <object type="DiagramEntitySetting" id="387"> 5789 + <field name="entity"> 5790 + <object ref="38"/> 5791 + </field> 5792 + <field name="location"> 5793 + <object type="Coordinate" id="388"> 5794 + <field name="x">234</field> 5795 + <field name="y">322</field> 5796 + </object> 5797 + </field> 5798 + </object> 5799 + 5800 + <object type="DiagramEntitySetting" id="389"> 5801 + <field name="entity"> 5802 + <object ref="105"/> 5803 + </field> 5804 + <field name="location"> 5805 + <object type="Coordinate" id="390"> 5806 + <field name="x">687</field> 5807 + <field name="y">136</field> 5808 + </object> 5809 + </field> 5810 + </object> 5811 + 5812 + <object type="DiagramEntitySetting" id="391"> 5813 + <field name="entity"> 5814 + <object ref="206"/> 5815 + </field> 5816 + <field name="location"> 5817 + <object type="Coordinate" id="392"> 5818 + <field name="x">59</field> 5819 + <field name="y">64</field> 5820 + </object> 5821 + </field> 5822 + </object> 5823 + </list> 5824 + </field> 5825 + </object> 5826 + 5827 + <object type="DiagramSettings" id="393"> 5828 + <field name="diagramId"> 5829 + <object type="DiagramId" id="394"> 5830 + <field name="stringId">au.edu.rmit.cs.prometheus.gui.diagram.capabilityoverview.CapabilityOverviewDiagramModel#53</field> 5831 + </object> 5832 + </field> 5833 + <field name="entitySettings"><list> 5834 + <object type="DiagramEntitySetting" id="395"> 5835 + <field name="entity"> 5836 + <object ref="60"/> 5837 + </field> 5838 + <field name="location"> 5839 + <object type="Coordinate" id="396"> 5840 + <field name="x">159</field> 5841 + <field name="y">128</field> 5842 + </object> 5843 + </field> 5844 + </object> 5845 + 5846 + <object type="DiagramEntitySetting" id="397"> 5847 + <field name="entity"> 5848 + <object ref="211"/> 5849 + </field> 5850 + <field name="location"> 5851 + <object type="Coordinate" id="398"> 5852 + <field name="x">171</field> 5853 + <field name="y">332</field> 5854 + </object> 5855 + </field> 5856 + </object> 5857 + 5858 + <object type="DiagramEntitySetting" id="399"> 5859 + <field name="entity"> 5860 + <object ref="62"/> 5861 + </field> 5862 + <field name="location"> 5863 + <object type="Coordinate" id="400"> 5864 + <field name="x">283</field> 5865 + <field name="y">126</field> 5866 + </object> 5867 + </field> 5868 + </object> 5869 + 5870 + <object type="DiagramEntitySetting" id="401"> 5871 + <field name="entity"> 5872 + <object ref="140"/> 5873 + </field> 5874 + <field name="location"> 5875 + <object type="Coordinate" id="402"> 5876 + <field name="x">299</field> 5877 + <field name="y">232</field> 5878 + </object> 5879 + </field> 5880 + </object> 5881 + 5882 + <object type="DiagramEntitySetting" id="403"> 5883 + <field name="entity"> 5884 + <object ref="139"/> 5885 + </field> 5886 + <field name="location"> 5887 + <object type="Coordinate" id="404"> 5888 + <field name="x">313</field> 5889 + <field name="y">327</field> 5890 + </object> 5891 + </field> 5892 + </object> 5893 + 5894 + <object type="DiagramEntitySetting" id="405"> 5895 + <field name="entity"> 5896 + <object ref="208"/> 5897 + </field> 5898 + <field name="location"> 5899 + <object type="Coordinate" id="406"> 5900 + <field name="x">159</field> 5901 + <field name="y">231</field> 5902 + </object> 5903 + </field> 5904 + </object> 5905 + </list> 5906 + </field> 5907 + </object> 5908 + 5909 + <object type="DiagramSettings" id="407"> 5910 + <field name="diagramId"> 5911 + <object type="DiagramId" id="408"> 5912 + <field name="stringId">au.edu.rmit.cs.prometheus.gui.diagram.agentoverview.AgentOverviewDiagramModel(id#171)</field> 5913 + </object> 5914 + </field> 5915 + <field name="entitySettings"><list> 5916 + <object type="DiagramEntitySetting" id="409"> 5917 + <field name="entity"> 5918 + <object ref="133"/> 5919 + </field> 5920 + <field name="location"> 5921 + <object type="Coordinate" id="410"> 5922 + <field name="x">47</field> 5923 + <field name="y">161</field> 5924 + </object> 5925 + </field> 5926 + </object> 5927 + 5928 + <object type="DiagramEntitySetting" id="411"> 5929 + <field name="entity"> 5930 + <object ref="113"/> 5931 + </field> 5932 + <field name="location"> 5933 + <object type="Coordinate" id="412"> 5934 + <field name="x">160</field> 5935 + <field name="y">88</field> 5936 + </object> 5937 + </field> 5938 + </object> 5939 + 5940 + <object type="DiagramEntitySetting" id="413"> 5941 + <field name="entity"> 5942 + <object ref="70"/> 5943 + </field> 5944 + <field name="location"> 5945 + <object type="Coordinate" id="414"> 5946 + <field name="x">23</field> 5947 + <field name="y">16</field> 5948 + </object> 5949 + </field> 5950 + </object> 5951 + 5952 + <object type="DiagramEntitySetting" id="415"> 5953 + <field name="entity"> 5954 + <object ref="69"/> 5955 + </field> 5956 + <field name="location"> 5957 + <object type="Coordinate" id="416"> 5958 + <field name="x">21</field> 5959 + <field name="y">93</field> 5960 + </object> 5961 + </field> 5962 + </object> 5963 + </list> 5964 + </field> 5965 + </object> 5966 + 5967 + <object type="DiagramSettings" id="417"> 5968 + <field name="diagramId"> 5969 + <object type="DiagramId" id="418"> 5970 + <field name="stringId">System Roles</field> 5971 + </object> 5972 + </field> 5973 + <field name="entitySettings"><list> 5974 + <object type="DiagramEntitySetting" id="419"> 5975 + <field name="entity"> 5976 + <object ref="60"/> 5977 + </field> 5978 + <field name="location"> 5979 + <object type="Coordinate" id="420"> 5980 + <field name="x">184</field> 5981 + <field name="y">14</field> 5982 + </object> 5983 + </field> 5984 + </object> 5985 + 5986 + <object type="DiagramEntitySetting" id="421"> 5987 + <field name="entity"> 5988 + <object ref="62"/> 5989 + </field> 5990 + <field name="location"> 5991 + <object type="Coordinate" id="422"> 5992 + <field name="x">130</field> 5993 + <field name="y">111</field> 5994 + </object> 5995 + </field> 5996 + </object> 5997 + 5998 + <object type="DiagramEntitySetting" id="423"> 5999 + <field name="entity"> 6000 + <object ref="180"/> 6001 + </field> 6002 + <field name="location"> 6003 + <object type="Coordinate" id="424"> 6004 + <field name="x">510</field> 6005 + <field name="y">56</field> 6006 + </object> 6007 + </field> 6008 + </object> 6009 + 6010 + <object type="DiagramEntitySetting" id="425"> 6011 + <field name="entity"> 6012 + <object ref="70"/> 6013 + </field> 6014 + <field name="location"> 6015 + <object type="Coordinate" id="426"> 6016 + <field name="x">428</field> 6017 + <field name="y">21</field> 6018 + </object> 6019 + </field> 6020 + </object> 6021 + 6022 + <object type="DiagramEntitySetting" id="427"> 6023 + <field name="entity"> 6024 + <object ref="107"/> 6025 + </field> 6026 + <field name="location"> 6027 + <object type="Coordinate" id="428"> 6028 + <field name="x">158</field> 6029 + <field name="y">279</field> 6030 + </object> 6031 + </field> 6032 + </object> 6033 + 6034 + <object type="DiagramEntitySetting" id="429"> 6035 + <field name="entity"> 6036 + <object ref="179"/> 6037 + </field> 6038 + <field name="location"> 6039 + <object type="Coordinate" id="430"> 6040 + <field name="x">392</field> 6041 + <field name="y">79</field> 6042 + </object> 6043 + </field> 6044 + </object> 6045 + 6046 + <object type="DiagramEntitySetting" id="431"> 6047 + <field name="entity"> 6048 + <object ref="190"/> 6049 + </field> 6050 + <field name="location"> 6051 + <object type="Coordinate" id="432"> 6052 + <field name="x">222</field> 6053 + <field name="y">88</field> 6054 + </object> 6055 + </field> 6056 + </object> 6057 + 6058 + <object type="DiagramEntitySetting" id="433"> 6059 + <field name="entity"> 6060 + <object ref="59"/> 6061 + </field> 6062 + <field name="location"> 6063 + <object type="Coordinate" id="434"> 6064 + <field name="x">20</field> 6065 + <field name="y">102</field> 6066 + </object> 6067 + </field> 6068 + </object> 6069 + 6070 + <object type="DiagramEntitySetting" id="435"> 6071 + <field name="entity"> 6072 + <object ref="200"/> 6073 + </field> 6074 + <field name="location"> 6075 + <object type="Coordinate" id="436"> 6076 + <field name="x">29</field> 6077 + <field name="y">188</field> 6078 + </object> 6079 + </field> 6080 + </object> 6081 + 6082 + <object type="DiagramEntitySetting" id="437"> 6083 + <field name="entity"> 6084 + <object ref="84"/> 6085 + </field> 6086 + <field name="location"> 6087 + <object type="Coordinate" id="438"> 6088 + <field name="x">270</field> 6089 + <field name="y">365</field> 6090 + </object> 6091 + </field> 6092 + </object> 6093 + 6094 + <object type="DiagramEntitySetting" id="439"> 6095 + <field name="entity"> 6096 + <object ref="127"/> 6097 + </field> 6098 + <field name="location"> 6099 + <object type="Coordinate" id="440"> 6100 + <field name="x">305</field> 6101 + <field name="y">298</field> 6102 + </object> 6103 + </field> 6104 + </object> 6105 + 6106 + <object type="DiagramEntitySetting" id="441"> 6107 + <field name="entity"> 6108 + <object ref="58"/> 6109 + </field> 6110 + <field name="location"> 6111 + <object type="Coordinate" id="442"> 6112 + <field name="x">20</field> 6113 + <field name="y">31</field> 6114 + </object> 6115 + </field> 6116 + </object> 6117 + 6118 + <object type="DiagramEntitySetting" id="443"> 6119 + <field name="entity"> 6120 + <object ref="77"/> 6121 + </field> 6122 + <field name="location"> 6123 + <object type="Coordinate" id="444"> 6124 + <field name="x">413</field> 6125 + <field name="y">290</field> 6126 + </object> 6127 + </field> 6128 + </object> 6129 + 6130 + <object type="DiagramEntitySetting" id="445"> 6131 + <field name="entity"> 6132 + <object ref="82"/> 6133 + </field> 6134 + <field name="location"> 6135 + <object type="Coordinate" id="446"> 6136 + <field name="x">459</field> 6137 + <field name="y">353</field> 6138 + </object> 6139 + </field> 6140 + </object> 6141 + 6142 + <object type="DiagramEntitySetting" id="447"> 6143 + <field name="entity"> 6144 + <object ref="202"/> 6145 + </field> 6146 + <field name="location"> 6147 + <object type="Coordinate" id="448"> 6148 + <field name="x">24</field> 6149 + <field name="y">278</field> 6150 + </object> 6151 + </field> 6152 + </object> 6153 + 6154 + <object type="DiagramEntitySetting" id="449"> 6155 + <field name="entity"> 6156 + <object ref="20"/> 6157 + </field> 6158 + <field name="location"> 6159 + <object type="Coordinate" id="450"> 6160 + <field name="x">597</field> 6161 + <field name="y">163</field> 6162 + </object> 6163 + </field> 6164 + </object> 6165 + 6166 + <object type="DiagramEntitySetting" id="451"> 6167 + <field name="entity"> 6168 + <object ref="13"/> 6169 + </field> 6170 + <field name="location"> 6171 + <object type="Coordinate" id="452"> 6172 + <field name="x">384</field> 6173 + <field name="y">251</field> 6174 + </object> 6175 + </field> 6176 + </object> 6177 + 6178 + <object type="DiagramEntitySetting" id="453"> 6179 + <field name="entity"> 6180 + <object ref="21"/> 6181 + </field> 6182 + <field name="location"> 6183 + <object type="Coordinate" id="454"> 6184 + <field name="x">604</field> 6185 + <field name="y">82</field> 6186 + </object> 6187 + </field> 6188 + </object> 6189 + 6190 + <object type="DiagramEntitySetting" id="455"> 6191 + <field name="entity"> 6192 + <object ref="11"/> 6193 + </field> 6194 + <field name="location"> 6195 + <object type="Coordinate" id="456"> 6196 + <field name="x">128</field> 6197 + <field name="y">403</field> 6198 + </object> 6199 + </field> 6200 + </object> 6201 + 6202 + <object type="DiagramEntitySetting" id="457"> 6203 + <field name="entity"> 6204 + <object ref="10"/> 6205 + </field> 6206 + <field name="location"> 6207 + <object type="Coordinate" id="458"> 6208 + <field name="x">10</field> 6209 + <field name="y">404</field> 6210 + </object> 6211 + </field> 6212 + </object> 6213 + 6214 + <object type="DiagramEntitySetting" id="459"> 6215 + <field name="entity"> 6216 + <object ref="35"/> 6217 + </field> 6218 + <field name="location"> 6219 + <object type="Coordinate" id="460"> 6220 + <field name="x">308</field> 6221 + <field name="y">122</field> 6222 + </object> 6223 + </field> 6224 + </object> 6225 + 6226 + <object type="DiagramEntitySetting" id="461"> 6227 + <field name="entity"> 6228 + <object ref="12"/> 6229 + </field> 6230 + <field name="location"> 6231 + <object type="Coordinate" id="462"> 6232 + <field name="x">33</field> 6233 + <field name="y">324</field> 6234 + </object> 6235 + </field> 6236 + </object> 6237 + 6238 + <object type="DiagramEntitySetting" id="463"> 6239 + <field name="entity"> 6240 + <object ref="37"/> 6241 + </field> 6242 + <field name="location"> 6243 + <object type="Coordinate" id="464"> 6244 + <field name="x">139</field> 6245 + <field name="y">158</field> 6246 + </object> 6247 + </field> 6248 + </object> 6249 + 6250 + <object type="DiagramEntitySetting" id="465"> 6251 + <field name="entity"> 6252 + <object ref="81"/> 6253 + </field> 6254 + <field name="location"> 6255 + <object type="Coordinate" id="466"> 6256 + <field name="x">451</field> 6257 + <field name="y">402</field> 6258 + </object> 6259 + </field> 6260 + </object> 6261 + 6262 + <object type="DiagramEntitySetting" id="467"> 6263 + <field name="entity"> 6264 + <object ref="36"/> 6265 + </field> 6266 + <field name="location"> 6267 + <object type="Coordinate" id="468"> 6268 + <field name="x">311</field> 6269 + <field name="y">219</field> 6270 + </object> 6271 + </field> 6272 + </object> 6273 + 6274 + <object type="DiagramEntitySetting" id="469"> 6275 + <field name="entity"> 6276 + <object ref="106"/> 6277 + </field> 6278 + <field name="location"> 6279 + <object type="Coordinate" id="470"> 6280 + <field name="x">614</field> 6281 + <field name="y">241</field> 6282 + </object> 6283 + </field> 6284 + </object> 6285 + 6286 + <object type="DiagramEntitySetting" id="471"> 6287 + <field name="entity"> 6288 + <object ref="38"/> 6289 + </field> 6290 + <field name="location"> 6291 + <object type="Coordinate" id="472"> 6292 + <field name="x">503</field> 6293 + <field name="y">189</field> 6294 + </object> 6295 + </field> 6296 + </object> 6297 + 6298 + <object type="DiagramEntitySetting" id="473"> 6299 + <field name="entity"> 6300 + <object ref="201"/> 6301 + </field> 6302 + <field name="location"> 6303 + <object type="Coordinate" id="474"> 6304 + <field name="x">40</field> 6305 + <field name="y">233</field> 6306 + </object> 6307 + </field> 6308 + </object> 6309 + 6310 + <object type="DiagramEntitySetting" id="475"> 6311 + <field name="entity"> 6312 + <object ref="164"/> 6313 + </field> 6314 + <field name="location"> 6315 + <object type="Coordinate" id="476"> 6316 + <field name="x">61</field> 6317 + <field name="y">367</field> 6318 + </object> 6319 + </field> 6320 + </object> 6321 + 6322 + <object type="DiagramEntitySetting" id="477"> 6323 + <field name="entity"> 6324 + <object ref="105"/> 6325 + </field> 6326 + <field name="location"> 6327 + <object type="Coordinate" id="478"> 6328 + <field name="x">158</field> 6329 + <field name="y">187</field> 6330 + </object> 6331 + </field> 6332 + </object> 6333 + 6334 + <object type="DiagramEntitySetting" id="479"> 6335 + <field name="entity"> 6336 + <object ref="189"/> 6337 + </field> 6338 + <field name="location"> 6339 + <object type="Coordinate" id="480"> 6340 + <field name="x">109</field> 6341 + <field name="y">62</field> 6342 + </object> 6343 + </field> 6344 + </object> 6345 + 6346 + <object type="DiagramEntitySetting" id="481"> 6347 + <field name="entity"> 6348 + <object ref="166"/> 6349 + </field> 6350 + <field name="location"> 6351 + <object type="Coordinate" id="482"> 6352 + <field name="x">511</field> 6353 + <field name="y">244</field> 6354 + </object> 6355 + </field> 6356 + </object> 6357 + 6358 + <object type="DiagramEntitySetting" id="483"> 6359 + <field name="entity"> 6360 + <object ref="128"/> 6361 + </field> 6362 + <field name="location"> 6363 + <object type="Coordinate" id="484"> 6364 + <field name="x">159</field> 6365 + <field name="y">231</field> 6366 + </object> 6367 + </field> 6368 + </object> 6369 + 6370 + <object type="DiagramEntitySetting" id="485"> 6371 + <field name="entity"> 6372 + <object ref="162"/> 6373 + </field> 6374 + <field name="location"> 6375 + <object type="Coordinate" id="486"> 6376 + <field name="x">326</field> 6377 + <field name="y">158</field> 6378 + </object> 6379 + </field> 6380 + </object> 6381 + 6382 + <object type="DiagramEntitySetting" id="487"> 6383 + <field name="entity"> 6384 + <object ref="163"/> 6385 + </field> 6386 + <field name="location"> 6387 + <object type="Coordinate" id="488"> 6388 + <field name="x">559</field> 6389 + <field name="y">122</field> 6390 + </object> 6391 + </field> 6392 + </object> 6393 + 6394 + <object type="DiagramEntitySetting" id="489"> 6395 + <field name="entity"> 6396 + <object ref="64"/> 6397 + </field> 6398 + <field name="location"> 6399 + <object type="Coordinate" id="490"> 6400 + <field name="x">227</field> 6401 + <field name="y">51</field> 6402 + </object> 6403 + </field> 6404 + </object> 6405 + </list> 6406 + </field> 6407 + </object> 6408 + 6409 + <object type="DiagramSettings" id="491"> 6410 + <field name="diagramId"> 6411 + <object type="DiagramId" id="492"> 6412 + <field name="stringId">Analysis Overview</field> 6413 + </object> 6414 + </field> 6415 + <field name="entitySettings"><list> 6416 + <object type="DiagramEntitySetting" id="493"> 6417 + <field name="entity"> 6418 + <object ref="108"/> 6419 + </field> 6420 + <field name="location"> 6421 + <object type="Coordinate" id="494"> 6422 + <field name="x">48</field> 6423 + <field name="y">37</field> 6424 + </object> 6425 + </field> 6426 + </object> 6427 + 6428 + <object type="DiagramEntitySetting" id="495"> 6429 + <field name="entity"> 6430 + <object ref="61"/> 6431 + </field> 6432 + <field name="location"> 6433 + <object type="Coordinate" id="496"> 6434 + <field name="x">193</field> 6435 + <field name="y">368</field> 6436 + </object> 6437 + </field> 6438 + </object> 6439 + 6440 + <object type="DiagramEntitySetting" id="497"> 6441 + <field name="entity"> 6442 + <object ref="114"/> 6443 + </field> 6444 + <field name="location"> 6445 + <object type="Coordinate" id="498"> 6446 + <field name="x">479</field> 6447 + <field name="y">373</field> 6448 + </object> 6449 + </field> 6450 + </object> 6451 + 6452 + <object type="DiagramEntitySetting" id="499"> 6453 + <field name="entity"> 6454 + <object ref="60"/> 6455 + </field> 6456 + <field name="location"> 6457 + <object type="Coordinate" id="500"> 6458 + <field name="x">314</field> 6459 + <field name="y">301</field> 6460 + </object> 6461 + </field> 6462 + </object> 6463 + 6464 + <object type="DiagramEntitySetting" id="501"> 6465 + <field name="entity"> 6466 + <object ref="63"/> 6467 + </field> 6468 + <field name="location"> 6469 + <object type="Coordinate" id="502"> 6470 + <field name="x">217</field> 6471 + <field name="y">198</field> 6472 + </object> 6473 + </field> 6474 + </object> 6475 + 6476 + <object type="DiagramEntitySetting" id="503"> 6477 + <field name="entity"> 6478 + <object ref="62"/> 6479 + </field> 6480 + <field name="location"> 6481 + <object type="Coordinate" id="504"> 6482 + <field name="x">189</field> 6483 + <field name="y">296</field> 6484 + </object> 6485 + </field> 6486 + </object> 6487 + 6488 + <object type="DiagramEntitySetting" id="505"> 6489 + <field name="entity"> 6490 + <object ref="113"/> 6491 + </field> 6492 + <field name="location"> 6493 + <object type="Coordinate" id="506"> 6494 + <field name="x">540</field> 6495 + <field name="y">299</field> 6496 + </object> 6497 + </field> 6498 + </object> 6499 + 6500 + <object type="DiagramEntitySetting" id="507"> 6501 + <field name="entity"> 6502 + <object ref="70"/> 6503 + </field> 6504 + <field name="location"> 6505 + <object type="Coordinate" id="508"> 6506 + <field name="x">424</field> 6507 + <field name="y">297</field> 6508 + </object> 6509 + </field> 6510 + </object> 6511 + 6512 + <object type="DiagramEntitySetting" id="509"> 6513 + <field name="entity"> 6514 + <object ref="135"/> 6515 + </field> 6516 + <field name="location"> 6517 + <object type="Coordinate" id="510"> 6518 + <field name="x">208</field> 6519 + <field name="y">97</field> 6520 + </object> 6521 + </field> 6522 + </object> 6523 + 6524 + <object type="DiagramEntitySetting" id="511"> 6525 + <field name="entity"> 6526 + <object ref="107"/> 6527 + </field> 6528 + <field name="location"> 6529 + <object type="Coordinate" id="512"> 6530 + <field name="x">234</field> 6531 + <field name="y">41</field> 6532 + </object> 6533 + </field> 6534 + </object> 6535 + 6536 + <object type="DiagramEntitySetting" id="513"> 6537 + <field name="entity"> 6538 + <object ref="64"/> 6539 + </field> 6540 + <field name="location"> 6541 + <object type="Coordinate" id="514"> 6542 + <field name="x">10</field> 6543 + <field name="y">301</field> 6544 + </object> 6545 + </field> 6546 + </object> 6547 + 6548 + <object type="DiagramEntitySetting" id="515"> 6549 + <field name="entity"> 6550 + <object ref="77"/> 6551 + </field> 6552 + <field name="location"> 6553 + <object type="Coordinate" id="516"> 6554 + <field name="y">93</field> 6555 + </object> 6556 + </field> 6557 + </object> 6558 + 6559 + <object type="DiagramEntitySetting" id="517"> 6560 + <field name="entity"> 6561 + <object ref="78"/> 6562 + </field> 6563 + <field name="location"> 6564 + <object type="Coordinate" id="518"> 6565 + <field name="x">24</field> 6566 + <field name="y">163</field> 6567 + </object> 6568 + </field> 6569 + </object> 6570 + </list> 6571 + </field> 6572 + </object> 6573 + 6574 + <object type="DiagramSettings" id="519"> 6575 + <field name="diagramId"> 6576 + <object type="DiagramId" id="520"> 6577 + <field name="stringId">au.edu.rmit.cs.prometheus.gui.diagram.agentoverview.AgentOverviewDiagramModel(id#47)</field> 6578 + </object> 6579 + </field> 6580 + <field name="entitySettings"><list> 6581 + <object type="DiagramEntitySetting" id="521"> 6582 + <field name="entity"> 6583 + <object ref="7"/> 6584 + </field> 6585 + <field name="location"> 6586 + <object type="Coordinate" id="522"> 6587 + <field name="x">385</field> 6588 + <field name="y">291</field> 6589 + </object> 6590 + </field> 6591 + </object> 6592 + 6593 + <object type="DiagramEntitySetting" id="523"> 6594 + <field name="entity"> 6595 + <object ref="60"/> 6596 + </field> 6597 + <field name="location"> 6598 + <object type="Coordinate" id="524"> 6599 + <field name="x">170</field> 6600 + <field name="y">61</field> 6601 + </object> 6602 + </field> 6603 + </object> 6604 + 6605 + <object type="DiagramEntitySetting" id="525"> 6606 + <field name="entity"> 6607 + <object ref="130"/> 6608 + </field> 6609 + <field name="location"> 6610 + <object type="Coordinate" id="526"> 6611 + <field name="x">309</field> 6612 + <field name="y">10</field> 6613 + </object> 6614 + </field> 6615 + </object> 6616 + 6617 + <object type="DiagramEntitySetting" id="527"> 6618 + <field name="entity"> 6619 + <object ref="30"/> 6620 + </field> 6621 + <field name="location"> 6622 + <object type="Coordinate" id="528"> 6623 + <field name="x">293</field> 6624 + <field name="y">318</field> 6625 + </object> 6626 + </field> 6627 + </object> 6628 + 6629 + <object type="DiagramEntitySetting" id="529"> 6630 + <field name="entity"> 6631 + <object ref="62"/> 6632 + </field> 6633 + <field name="location"> 6634 + <object type="Coordinate" id="530"> 6635 + <field name="x">44</field> 6636 + <field name="y">11</field> 6637 + </object> 6638 + </field> 6639 + </object> 6640 + 6641 + <object type="DiagramEntitySetting" id="531"> 6642 + <field name="entity"> 6643 + <object ref="70"/> 6644 + </field> 6645 + <field name="location"> 6646 + <object type="Coordinate" id="532"> 6647 + <field name="x">432</field> 6648 + <field name="y">5</field> 6649 + </object> 6650 + </field> 6651 + </object> 6652 + 6653 + <object type="DiagramEntitySetting" id="533"> 6654 + <field name="entity"> 6655 + <object ref="32"/> 6656 + </field> 6657 + <field name="location"> 6658 + <object type="Coordinate" id="534"> 6659 + <field name="x">188</field> 6660 + <field name="y">315</field> 6661 + </object> 6662 + </field> 6663 + </object> 6664 + 6665 + <object type="DiagramEntitySetting" id="535"> 6666 + <field name="entity"> 6667 + <object ref="16"/> 6668 + </field> 6669 + <field name="location"> 6670 + <object type="Coordinate" id="536"> 6671 + <field name="x">383</field> 6672 + <field name="y">174</field> 6673 + </object> 6674 + </field> 6675 + </object> 6676 + 6677 + <object type="DiagramEntitySetting" id="537"> 6678 + <field name="entity"> 6679 + <object ref="17"/> 6680 + </field> 6681 + <field name="location"> 6682 + <object type="Coordinate" id="538"> 6683 + <field name="x">196</field> 6684 + <field name="y">173</field> 6685 + </object> 6686 + </field> 6687 + </object> 6688 + 6689 + <object type="DiagramEntitySetting" id="539"> 6690 + <field name="entity"> 6691 + <object ref="86"/> 6692 + </field> 6693 + <field name="location"> 6694 + <object type="Coordinate" id="540"> 6695 + <field name="x">415</field> 6696 + <field name="y">312</field> 6697 + </object> 6698 + </field> 6699 + </object> 6700 + 6701 + <object type="DiagramEntitySetting" id="541"> 6702 + <field name="entity"> 6703 + <object ref="64"/> 6704 + </field> 6705 + <field name="location"> 6706 + <object type="Coordinate" id="542"> 6707 + <field name="x">424</field> 6708 + <field name="y">130</field> 6709 + </object> 6710 + </field> 6711 + </object> 6712 + 6713 + <object type="DiagramEntitySetting" id="543"> 6714 + <field name="entity"> 6715 + <object ref="87"/> 6716 + </field> 6717 + <field name="location"> 6718 + <object type="Coordinate" id="544"> 6719 + <field name="x">507</field> 6720 + <field name="y">273</field> 6721 + </object> 6722 + </field> 6723 + </object> 6724 + 6725 + <object type="DiagramEntitySetting" id="545"> 6726 + <field name="entity"> 6727 + <object ref="52"/> 6728 + </field> 6729 + <field name="location"> 6730 + <object type="Coordinate" id="546"> 6731 + <field name="x">291</field> 6732 + <field name="y">64</field> 6733 + </object> 6734 + </field> 6735 + </object> 6736 + 6737 + <object type="DiagramEntitySetting" id="547"> 6738 + <field name="entity"> 6739 + <object ref="98"/> 6740 + </field> 6741 + <field name="location"> 6742 + <object type="Coordinate" id="548"> 6743 + <field name="x">316</field> 6744 + <field name="y">377</field> 6745 + </object> 6746 + </field> 6747 + </object> 6748 + 6749 + <object type="DiagramEntitySetting" id="549"> 6750 + <field name="entity"> 6751 + <object ref="8"/> 6752 + </field> 6753 + <field name="location"> 6754 + <object type="Coordinate" id="550"> 6755 + <field name="x">8</field> 6756 + <field name="y">244</field> 6757 + </object> 6758 + </field> 6759 + </object> 6760 + 6761 + <object type="DiagramEntitySetting" id="551"> 6762 + <field name="entity"> 6763 + <object ref="57"/> 6764 + </field> 6765 + <field name="location"> 6766 + <object type="Coordinate" id="552"> 6767 + <field name="x">43</field> 6768 + <field name="y">64</field> 6769 + </object> 6770 + </field> 6771 + </object> 6772 + 6773 + <object type="DiagramEntitySetting" id="553"> 6774 + <field name="entity"> 6775 + <object ref="90"/> 6776 + </field> 6777 + <field name="location"> 6778 + <object type="Coordinate" id="554"> 6779 + <field name="x">524</field> 6780 + <field name="y">216</field> 6781 + </object> 6782 + </field> 6783 + </object> 6784 + 6785 + <object type="DiagramEntitySetting" id="555"> 6786 + <field name="entity"> 6787 + <object ref="28"/> 6788 + </field> 6789 + <field name="location"> 6790 + <object type="Coordinate" id="556"> 6791 + <field name="x">277</field> 6792 + <field name="y">355</field> 6793 + </object> 6794 + </field> 6795 + </object> 6796 + 6797 + <object type="DiagramEntitySetting" id="557"> 6798 + <field name="entity"> 6799 + <object ref="51"/> 6800 + </field> 6801 + <field name="location"> 6802 + <object type="Coordinate" id="558"> 6803 + <field name="x">276</field> 6804 + <field name="y">113</field> 6805 + </object> 6806 + </field> 6807 + </object> 6808 + 6809 + <object type="DiagramEntitySetting" id="559"> 6810 + <field name="entity"> 6811 + <object ref="138"/> 6812 + </field> 6813 + <field name="location"> 6814 + <object type="Coordinate" id="560"> 6815 + <field name="x">48</field> 6816 + <field name="y">113</field> 6817 + </object> 6818 + </field> 6819 + </object> 6820 + 6821 + <object type="DiagramEntitySetting" id="561"> 6822 + <field name="entity"> 6823 + <object ref="18"/> 6824 + </field> 6825 + <field name="location"> 6826 + <object type="Coordinate" id="562"> 6827 + <field name="x">135</field> 6828 + <field name="y">244</field> 6829 + </object> 6830 + </field> 6831 + </object> 6832 + 6833 + <object type="DiagramEntitySetting" id="563"> 6834 + <field name="entity"> 6835 + <object ref="33"/> 6836 + </field> 6837 + <field name="location"> 6838 + <object type="Coordinate" id="564"> 6839 + <field name="x">317</field> 6840 + <field name="y">245</field> 6841 + </object> 6842 + </field> 6843 + </object> 6844 + </list> 6845 + </field> 6846 + </object> 6847 + 6848 + <object type="DiagramSettings" id="565"> 6849 + <field name="diagramId"> 6850 + <object type="DiagramId" id="566"> 6851 + <field name="stringId">Data Coupling</field> 6852 + </object> 6853 + </field> 6854 + <field name="entitySettings"><list> 6855 + <object type="DiagramEntitySetting" id="567"> 6856 + <field name="entity"> 6857 + <object ref="201"/> 6858 + </field> 6859 + <field name="location"> 6860 + <object type="Coordinate" id="568"> 6861 + <field name="x">286</field> 6862 + <field name="y">361</field> 6863 + </object> 6864 + </field> 6865 + </object> 6866 + 6867 + <object type="DiagramEntitySetting" id="569"> 6868 + <field name="entity"> 6869 + <object ref="164"/> 6870 + </field> 6871 + <field name="location"> 6872 + <object type="Coordinate" id="570"> 6873 + <field name="x">206</field> 6874 + <field name="y">187</field> 6875 + </object> 6876 + </field> 6877 + </object> 6878 + 6879 + <object type="DiagramEntitySetting" id="571"> 6880 + <field name="entity"> 6881 + <object ref="189"/> 6882 + </field> 6883 + <field name="location"> 6884 + <object type="Coordinate" id="572"> 6885 + <field name="x">86</field> 6886 + <field name="y">356</field> 6887 + </object> 6888 + </field> 6889 + </object> 6890 + 6891 + <object type="DiagramEntitySetting" id="573"> 6892 + <field name="entity"> 6893 + <object ref="180"/> 6894 + </field> 6895 + <field name="location"> 6896 + <object type="Coordinate" id="574"> 6897 + <field name="x">187</field> 6898 + <field name="y">26</field> 6899 + </object> 6900 + </field> 6901 + </object> 6902 + 6903 + <object type="DiagramEntitySetting" id="575"> 6904 + <field name="entity"> 6905 + <object ref="166"/> 6906 + </field> 6907 + <field name="location"> 6908 + <object type="Coordinate" id="576"> 6909 + <field name="x">38</field> 6910 + <field name="y">23</field> 6911 + </object> 6912 + </field> 6913 + </object> 6914 + 6915 + <object type="DiagramEntitySetting" id="577"> 6916 + <field name="entity"> 6917 + <object ref="128"/> 6918 + </field> 6919 + <field name="location"> 6920 + <object type="Coordinate" id="578"> 6921 + <field name="x">187</field> 6922 + <field name="y">134</field> 6923 + </object> 6924 + </field> 6925 + </object> 6926 + 6927 + <object type="DiagramEntitySetting" id="579"> 6928 + <field name="entity"> 6929 + <object ref="162"/> 6930 + </field> 6931 + <field name="location"> 6932 + <object type="Coordinate" id="580"> 6933 + <field name="x">346</field> 6934 + <field name="y">189</field> 6935 + </object> 6936 + </field> 6937 + </object> 6938 + 6939 + <object type="DiagramEntitySetting" id="581"> 6940 + <field name="entity"> 6941 + <object ref="163"/> 6942 + </field> 6943 + <field name="location"> 6944 + <object type="Coordinate" id="582"> 6945 + <field name="x">20</field> 6946 + <field name="y">190</field> 6947 + </object> 6948 + </field> 6949 + </object> 6950 + 6951 + <object type="DiagramEntitySetting" id="583"> 6952 + <field name="entity"> 6953 + <object ref="137"/> 6954 + </field> 6955 + <field name="location"> 6956 + <object type="Coordinate" id="584"> 6957 + <field name="x">137</field> 6958 + <field name="y">260</field> 6959 + </object> 6960 + </field> 6961 + </object> 6962 + 6963 + <object type="DiagramEntitySetting" id="585"> 6964 + <field name="entity"> 6965 + <object ref="50"/> 6966 + </field> 6967 + <field name="location"> 6968 + <object type="Coordinate" id="586"> 6969 + <field name="x">301</field> 6970 + <field name="y">261</field> 6971 + </object> 6972 + </field> 6973 + </object> 6974 + 6975 + <object type="DiagramEntitySetting" id="587"> 6976 + <field name="entity"> 6977 + <object ref="127"/> 6978 + </field> 6979 + <field name="location"> 6980 + <object type="Coordinate" id="588"> 6981 + <field name="x">36</field> 6982 + <field name="y">134</field> 6983 + </object> 6984 + </field> 6985 + </object> 6986 + 6987 + <object type="DiagramEntitySetting" id="589"> 6988 + <field name="entity"> 6989 + <object ref="82"/> 6990 + </field> 6991 + <field name="location"> 6992 + <object type="Coordinate" id="590"> 6993 + <field name="x">177</field> 6994 + <field name="y">74</field> 6995 + </object> 6996 + </field> 6997 + </object> 6998 + 6999 + <object type="DiagramEntitySetting" id="591"> 7000 + <field name="entity"> 7001 + <object ref="85"/> 7002 + </field> 7003 + <field name="location"> 7004 + <object type="Coordinate" id="592"> 7005 + <field name="x">43</field> 7006 + <field name="y">72</field> 7007 + </object> 7008 + </field> 7009 + </object> 7010 + </list> 7011 + </field> 7012 + </object> 7013 + 7014 + <object type="DiagramSettings" id="593"> 7015 + <field name="diagramId"> 7016 + <object type="DiagramId" id="594"> 7017 + <field name="stringId">Scenarios</field> 7018 + </object> 7019 + </field> 7020 + <field name="entitySettings"><list> 7021 + <object type="DiagramEntitySetting" id="595"> 7022 + <field name="entity"> 7023 + <object ref="63"/> 7024 + </field> 7025 + <field name="location"> 7026 + <object type="Coordinate" id="596"> 7027 + <field name="x">126</field> 7028 + <field name="y">45</field> 7029 + </object> 7030 + </field> 7031 + </object> 7032 + 7033 + <object type="DiagramEntitySetting" id="597"> 7034 + <field name="entity"> 7035 + <object ref="135"/> 7036 + </field> 7037 + <field name="location"> 7038 + <object type="Coordinate" id="598"> 7039 + <field name="x">125</field> 7040 + <field name="y">252</field> 7041 + </object> 7042 + </field> 7043 + </object> 7044 + 7045 + <object type="DiagramEntitySetting" id="599"> 7046 + <field name="entity"> 7047 + <object ref="195"/> 7048 + </field> 7049 + <field name="location"> 7050 + <object type="Coordinate" id="600"> 7051 + <field name="x">14</field> 7052 + <field name="y">103</field> 7053 + </object> 7054 + </field> 7055 + </object> 7056 + 7057 + <object type="DiagramEntitySetting" id="601"> 7058 + <field name="entity"> 7059 + <object ref="78"/> 7060 + </field> 7061 + <field name="location"> 7062 + <object type="Coordinate" id="602"> 7063 + <field name="x">133</field> 7064 + <field name="y">175</field> 7065 + </object> 7066 + </field> 7067 + </object> 7068 + 7069 + <object type="DiagramEntitySetting" id="603"> 7070 + <field name="entity"> 7071 + <object ref="187"/> 7072 + </field> 7073 + <field name="location"> 7074 + <object type="Coordinate" id="604"> 7075 + <field name="x">230</field> 7076 + <field name="y">102</field> 7077 + </object> 7078 + </field> 7079 + </object> 7080 + </list> 7081 + </field> 7082 + </object> 7083 + 7084 + <object type="DiagramSettings" id="605"> 7085 + <field name="diagramId"> 7086 + <object type="DiagramId" id="606"> 7087 + <field name="stringId">Agent-Role Coupling</field> 7088 + </object> 7089 + </field> 7090 + <field name="entitySettings"><list> 7091 + <object type="DiagramEntitySetting" id="607"> 7092 + <field name="entity"> 7093 + <object ref="68"/> 7094 + </field> 7095 + <field name="location"> 7096 + <object type="Coordinate" id="608"> 7097 + <field name="x">89</field> 7098 + <field name="y">45</field> 7099 + </object> 7100 + </field> 7101 + </object> 7102 + 7103 + <object type="DiagramEntitySetting" id="609"> 7104 + <field name="entity"> 7105 + <object ref="201"/> 7106 + </field> 7107 + <field name="location"> 7108 + <object type="Coordinate" id="610"> 7109 + <field name="x">238</field> 7110 + <field name="y">220</field> 7111 + </object> 7112 + </field> 7113 + </object> 7114 + 7115 + <object type="DiagramEntitySetting" id="611"> 7116 + <field name="entity"> 7117 + <object ref="164"/> 7118 + </field> 7119 + <field name="location"> 7120 + <object type="Coordinate" id="612"> 7121 + <field name="x">237</field> 7122 + <field name="y">261</field> 7123 + </object> 7124 + </field> 7125 + </object> 7126 + 7127 + <object type="DiagramEntitySetting" id="613"> 7128 + <field name="entity"> 7129 + <object ref="189"/> 7130 + </field> 7131 + <field name="location"> 7132 + <object type="Coordinate" id="614"> 7133 + <field name="x">210</field> 7134 + <field name="y">180</field> 7135 + </object> 7136 + </field> 7137 + </object> 7138 + 7139 + <object type="DiagramEntitySetting" id="615"> 7140 + <field name="entity"> 7141 + <object ref="180"/> 7142 + </field> 7143 + <field name="location"> 7144 + <object type="Coordinate" id="616"> 7145 + <field name="x">239</field> 7146 + <field name="y">41</field> 7147 + </object> 7148 + </field> 7149 + </object> 7150 + 7151 + <object type="DiagramEntitySetting" id="617"> 7152 + <field name="entity"> 7153 + <object ref="166"/> 7154 + </field> 7155 + <field name="location"> 7156 + <object type="Coordinate" id="618"> 7157 + <field name="x">247</field> 7158 + <field name="y">387</field> 7159 + </object> 7160 + </field> 7161 + </object> 7162 + 7163 + <object type="DiagramEntitySetting" id="619"> 7164 + <field name="entity"> 7165 + <object ref="128"/> 7166 + </field> 7167 + <field name="location"> 7168 + <object type="Coordinate" id="620"> 7169 + <field name="x">206</field> 7170 + <field name="y">136</field> 7171 + </object> 7172 + </field> 7173 + </object> 7174 + 7175 + <object type="DiagramEntitySetting" id="621"> 7176 + <field name="entity"> 7177 + <object ref="162"/> 7178 + </field> 7179 + <field name="location"> 7180 + <object type="Coordinate" id="622"> 7181 + <field name="x">245</field> 7182 + <field name="y">301</field> 7183 + </object> 7184 + </field> 7185 + </object> 7186 + 7187 + <object type="DiagramEntitySetting" id="623"> 7188 + <field name="entity"> 7189 + <object ref="163"/> 7190 + </field> 7191 + <field name="location"> 7192 + <object type="Coordinate" id="624"> 7193 + <field name="x">253</field> 7194 + <field name="y">343</field> 7195 + </object> 7196 + </field> 7197 + </object> 7198 + 7199 + <object type="DiagramEntitySetting" id="625"> 7200 + <field name="entity"> 7201 + <object ref="56"/> 7202 + </field> 7203 + <field name="location"> 7204 + <object type="Coordinate" id="626"> 7205 + <field name="x">74</field> 7206 + <field name="y">269</field> 7207 + </object> 7208 + </field> 7209 + </object> 7210 + 7211 + <object type="DiagramEntitySetting" id="627"> 7212 + <field name="entity"> 7213 + <object ref="127"/> 7214 + </field> 7215 + <field name="location"> 7216 + <object type="Coordinate" id="628"> 7217 + <field name="x">145</field> 7218 + <field name="y">381</field> 7219 + </object> 7220 + </field> 7221 + </object> 7222 + 7223 + <object type="DiagramEntitySetting" id="629"> 7224 + <field name="entity"> 7225 + <object ref="82"/> 7226 + </field> 7227 + <field name="location"> 7228 + <object type="Coordinate" id="630"> 7229 + <field name="x">191</field> 7230 + <field name="y">100</field> 7231 + </object> 7232 + </field> 7233 + </object> 7234 + 7235 + <object type="DiagramEntitySetting" id="631"> 7236 + <field name="entity"> 7237 + <object ref="75"/> 7238 + </field> 7239 + <field name="location"> 7240 + <object type="Coordinate" id="632"> 7241 + <field name="x">78</field> 7242 + <field name="y">131</field> 7243 + </object> 7244 + </field> 7245 + </object> 7246 + </list> 7247 + </field> 7248 + </object> 7249 + 7250 + <object type="DiagramSettings" id="633"> 7251 + <field name="diagramId"> 7252 + <object type="DiagramId" id="634"> 7253 + <field name="stringId">Agent Acquaintance</field> 7254 + </object> 7255 + </field> 7256 + <field name="entitySettings"><list> 7257 + <object type="DiagramEntitySetting" id="635"> 7258 + <field name="entity"> 7259 + <object ref="68"/> 7260 + </field> 7261 + <field name="location"> 7262 + <object type="Coordinate" id="636"> 7263 + <field name="x">28</field> 7264 + <field name="y">114</field> 7265 + </object> 7266 + </field> 7267 + </object> 7268 + 7269 + <object type="DiagramEntitySetting" id="637"> 7270 + <field name="entity"> 7271 + <object ref="75"/> 7272 + </field> 7273 + <field name="location"> 7274 + <object type="Coordinate" id="638"> 7275 + <field name="x">251</field> 7276 + <field name="y">43</field> 7277 + </object> 7278 + </field> 7279 + </object> 7280 + 7281 + <object type="DiagramEntitySetting" id="639"> 7282 + <field name="entity"> 7283 + <object ref="56"/> 7284 + </field> 7285 + <field name="location"> 7286 + <object type="Coordinate" id="640"> 7287 + <field name="x">50</field> 7288 + <field name="y">44</field> 7289 + </object> 7290 + </field> 7291 + <field name="userApproved">:false</field> 7292 + </object> 7293 + </list> 7294 + </field> 7295 + </object> 7296 + </list> 7297 + </field> 7298 + <field name="model"> 7299 + <object type="PrometheusModelData" id="641"> 7300 + <field name="projectData"> 7301 + <object ref="1"/> 7302 + </field> 7303 + <field name="actions"><list> 7304 + <object ref="60"/> 7305 + 7306 + <object ref="107"/> 7307 + 7308 + <object ref="64"/> 7309 + 7310 + <object ref="113"/> 7311 + </list> 7312 + </field> 7313 + <field name="agents"><list> 7314 + <object ref="56"/> 7315 + 7316 + <object ref="75"/> 7317 + 7318 + <object ref="68"/> 7319 + </list> 7320 + </field> 7321 + <field name="data"><list> 7322 + <object ref="137"/> 7323 + 7324 + <object ref="50"/> 7325 + 7326 + <object ref="85"/> 7327 + </list> 7328 + </field> 7329 + <field name="roles"><list> 7330 + <object ref="189"/> 7331 + 7332 + <object ref="201"/> 7333 + 7334 + <object ref="164"/> 7335 + 7336 + <object ref="162"/> 7337 + 7338 + <object ref="163"/> 7339 + 7340 + <object ref="166"/> 7341 + 7342 + <object ref="128"/> 7343 + 7344 + <object ref="127"/> 7345 + 7346 + <object ref="82"/> 7347 + 7348 + <object ref="180"/> 7349 + </list> 7350 + </field> 7351 + <field name="goals"><list> 7352 + <object ref="204"/> 7353 + 7354 + <object ref="103"/> 7355 + 7356 + <object ref="205"/> 7357 + 7358 + <object ref="190"/> 7359 + 7360 + <object ref="59"/> 7361 + 7362 + <object ref="58"/> 7363 + 7364 + <object ref="200"/> 7365 + 7366 + <object ref="202"/> 7367 + 7368 + <object ref="104"/> 7369 + 7370 + <object ref="34"/> 7371 + 7372 + <object ref="19"/> 7373 + 7374 + <object ref="9"/> 7375 + 7376 + <object ref="20"/> 7377 + 7378 + <object ref="21"/> 7379 + 7380 + <object ref="10"/> 7381 + 7382 + <object ref="11"/> 7383 + 7384 + <object ref="12"/> 7385 + 7386 + <object ref="35"/> 7387 + 7388 + <object ref="36"/> 7389 + 7390 + <object ref="37"/> 7391 + 7392 + <object ref="38"/> 7393 + 7394 + <object ref="106"/> 7395 + 7396 + <object ref="105"/> 7397 + 7398 + <object ref="124"/> 7399 + 7400 + <object ref="81"/> 7401 + 7402 + <object ref="84"/> 7403 + 7404 + <object ref="179"/> 7405 + 7406 + <object ref="206"/> 7407 + 7408 + <object ref="13"/> 7409 + </list> 7410 + </field> 7411 + <field name="messages"><list> 7412 + <object ref="96"/> 7413 + 7414 + <object ref="16"/> 7415 + 7416 + <object ref="28"/> 7417 + 7418 + <object ref="73"/> 7419 + 7420 + <object ref="54"/> 7421 + 7422 + <object ref="291"/> 7423 + 7424 + <object ref="210"/> 7425 + </list> 7426 + </field> 7427 + <field name="percepts"><list> 7428 + <object ref="62"/> 7429 + 7430 + <object ref="70"/> 7431 + 7432 + <object ref="77"/> 7433 + </list> 7434 + </field> 7435 + <field name="plans"><list> 7436 + <object ref="208"/> 7437 + 7438 + <object ref="140"/> 7439 + 7440 + <object ref="52"/> 7441 + 7442 + <object ref="14"/> 7443 + 7444 + <object ref="142"/> 7445 + 7446 + <object ref="145"/> 7447 + 7448 + <object ref="39"/> 7449 + 7450 + <object ref="42"/> 7451 + 7452 + <object ref="46"/> 7453 + 7454 + <object ref="214"/> 7455 + 7456 + <object ref="22"/> 7457 + 7458 + <object ref="25"/> 7459 + 7460 + <object ref="155"/> 7461 + 7462 + <object ref="30"/> 7463 + 7464 + <object ref="87"/> 7465 + 7466 + <object ref="76"/> 7467 + 7468 + <object ref="101"/> 7469 + 7470 + <object ref="69"/> 7471 + </list> 7472 + </field> 7473 + <field name="capabilities"><list> 7474 + <object ref="57"/> 7475 + 7476 + <object ref="8"/> 7477 + 7478 + <object ref="33"/> 7479 + 7480 + <object ref="18"/> 7481 + </list> 7482 + </field> 7483 + <field name="protocols"><list> 7484 + <object ref="66"/> 7485 + 7486 + <object ref="71"/> 7487 + 7488 + <object ref="94"/> 7489 + </list> 7490 + </field> 7491 + <field name="messageDistributionPairs"><list> 7492 + <object ref="97"/> 7493 + 7494 + <object ref="98"/> 7495 + 7496 + <object ref="100"/> 7497 + 7498 + <object ref="109"/> 7499 + 7500 + <object ref="17"/> 7501 + 7502 + <object ref="144"/> 7503 + 7504 + <object ref="24"/> 7505 + 7506 + <object ref="41"/> 7507 + 7508 + <object ref="152"/> 7509 + 7510 + <object ref="218"/> 7511 + 7512 + <object ref="220"/> 7513 + 7514 + <object ref="29"/> 7515 + 7516 + <object ref="31"/> 7517 + 7518 + <object ref="110"/> 7519 + 7520 + <object ref="74"/> 7521 + 7522 + <object ref="92"/> 7523 + 7524 + <object ref="90"/> 7525 + 7526 + <object ref="89"/> 7527 + 7528 + <object ref="88"/> 7529 + 7530 + <object ref="93"/> 7531 + 7532 + <object ref="102"/> 7533 + 7534 + <object ref="55"/> 7535 + 7536 + <object ref="133"/> 7537 + 7538 + <object ref="130"/> 7539 + 7540 + <object ref="131"/> 7541 + 7542 + <object ref="134"/> 7543 + 7544 + <object ref="53"/> 7545 + 7546 + <object ref="15"/> 7547 + 7548 + <object ref="143"/> 7549 + 7550 + <object ref="146"/> 7551 + 7552 + <object ref="40"/> 7553 + 7554 + <object ref="43"/> 7555 + 7556 + <object ref="47"/> 7557 + 7558 + <object ref="215"/> 7559 + 7560 + <object ref="23"/> 7561 + 7562 + <object ref="26"/> 7563 + 7564 + <object ref="222"/> 7565 + 7566 + <object ref="32"/> 7567 + 7568 + <object ref="211"/> 7569 + 7570 + <object ref="209"/> 7571 + 7572 + <object ref="148"/> 7573 + 7574 + <object ref="158"/> 7575 + 7576 + <object ref="45"/> 7577 + 7578 + <object ref="149"/> 7579 + 7580 + <object ref="150"/> 7581 + 7582 + <object ref="147"/> 7583 + 7584 + <object ref="217"/> 7585 + 7586 + <object ref="44"/> 7587 + 7588 + <object ref="48"/> 7589 + 7590 + <object ref="216"/> 7591 + 7592 + <object ref="159"/> 7593 + 7594 + <object ref="27"/> 7595 + 7596 + <object ref="157"/> 7597 + 7598 + <object ref="156"/> 7599 + 7600 + <object ref="72"/> 7601 + 7602 + <object ref="129"/> 7603 + 7604 + <object ref="99"/> 7605 + 7606 + <object ref="91"/> 7607 + 7608 + <object ref="95"/> 7609 + 7610 + <object ref="67"/> 7611 + </list> 7612 + </field> 7613 + <field name="scenarios"><list> 7614 + <object ref="63"/> 7615 + 7616 + <object ref="135"/> 7617 + 7618 + <object ref="78"/> 7619 + 7620 + <object ref="187"/> 7621 + 7622 + <object ref="195"/> 7623 + </list> 7624 + </field> 7625 + <field name="actors"><list> 7626 + <object ref="108"/> 7627 + 7628 + <object ref="61"/> 7629 + 7630 + <object ref="114"/> 7631 + </list> 7632 + </field> 7633 + <field name="steps"><list> 7634 + <object ref="186"/> 7635 + 7636 + <object ref="194"/> 7637 + 7638 + <object ref="196"/> 7639 + 7640 + <object type="Step" id="642"> 7641 + <base type="Entity"> 7642 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=248&gt;</field> 7643 + <field name="uniqueId">248</field> 7644 + </base> 7645 + 7646 + <field name="step"> 7647 + <object ref="200"/> 7648 + </field> 7649 + </object> 7650 + 7651 + <object ref="197"/> 7652 + 7653 + <object ref="198"/> 7654 + 7655 + <object ref="199"/> 7656 + 7657 + <object ref="203"/> 7658 + 7659 + <object ref="188"/> 7660 + 7661 + <object ref="191"/> 7662 + 7663 + <object ref="192"/> 7664 + 7665 + <object ref="193"/> 7666 + 7667 + <object type="Step" id="643"> 7668 + <base type="Entity"> 7669 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=257&gt;</field> 7670 + <field name="description">New beliefs are registered</field> 7671 + <field name="uniqueId">257</field> 7672 + </base> 7673 + 7674 + </object> 7675 + 7676 + <object ref="136"/> 7677 + 7678 + <object ref="167"/> 7679 + 7680 + <object type="Step" id="644"> 7681 + <base type="Entity"> 7682 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.Step ID=261&gt;</field> 7683 + <field name="description">Displays the warning to the user</field> 7684 + <field name="uniqueId">261</field> 7685 + </base> 7686 + 7687 + <field name="step"> 7688 + <object ref="105"/> 7689 + </field> 7690 + <field name="roles"><list> 7691 + <object ref="128"/> 7692 + </list> 7693 + </field> 7694 + </object> 7695 + 7696 + <object ref="165"/> 7697 + 7698 + <object ref="79"/> 7699 + 7700 + <object ref="80"/> 7701 + 7702 + <object ref="83"/> 7703 + 7704 + <object ref="168"/> 7705 + </list> 7706 + </field> 7707 + <field name="protocolDistributionPairs"><list> 7708 + <object ref="115"/> 7709 + 7710 + <object ref="116"/> 7711 + 7712 + <object ref="117"/> 7713 + 7714 + <object ref="118"/> 7715 + </list> 7716 + </field> 7717 + <field name="dataConnections"><list> 7718 + <object ref="138"/> 7719 + 7720 + <object ref="51"/> 7721 + 7722 + <object ref="139"/> 7723 + 7724 + <object ref="212"/> 7725 + 7726 + <object ref="141"/> 7727 + 7728 + <object ref="151"/> 7729 + 7730 + <object ref="49"/> 7731 + 7732 + <object ref="160"/> 7733 + 7734 + <object ref="154"/> 7735 + 7736 + <object ref="7"/> 7737 + 7738 + <object ref="224"/> 7739 + 7740 + <object ref="5"/> 7741 + 7742 + <object ref="225"/> 7743 + 7744 + <object ref="226"/> 7745 + 7746 + <object ref="86"/> 7747 + 7748 + <object ref="125"/> 7749 + 7750 + <object ref="126"/> 7751 + </list> 7752 + </field> 7753 + <field name="systemOverviewDiagramData"> 7754 + <object ref="112"/> 7755 + </field> 7756 + <field name="rolesDiagramData"> 7757 + <object type="RolesDiagramData" id="645"> 7758 + <field name="goals"><list> 7759 + <object ref="59"/> 7760 + 7761 + <object ref="190"/> 7762 + 7763 + <object ref="202"/> 7764 + 7765 + <object ref="58"/> 7766 + 7767 + <object ref="200"/> 7768 + 7769 + <object ref="10"/> 7770 + 7771 + <object ref="11"/> 7772 + 7773 + <object ref="12"/> 7774 + 7775 + <object ref="35"/> 7776 + 7777 + <object ref="36"/> 7778 + 7779 + <object ref="37"/> 7780 + 7781 + <object ref="38"/> 7782 + 7783 + <object ref="21"/> 7784 + 7785 + <object ref="20"/> 7786 + 7787 + <object ref="106"/> 7788 + 7789 + <object ref="105"/> 7790 + 7791 + <object ref="84"/> 7792 + 7793 + <object ref="81"/> 7794 + 7795 + <object ref="179"/> 7796 + 7797 + <object ref="13"/> 7798 + </list> 7799 + </field> 7800 + <field name="actions"><list> 7801 + <object ref="60"/> 7802 + 7803 + <object ref="107"/> 7804 + 7805 + <object ref="64"/> 7806 + </list> 7807 + </field> 7808 + <field name="percepts"><list> 7809 + <object ref="62"/> 7810 + 7811 + <object ref="70"/> 7812 + 7813 + <object ref="77"/> 7814 + </list> 7815 + </field> 7816 + </object> 7817 + </field> 7818 + <field name="analysisOverviewDiagramData"> 7819 + <object type="AnalysisOverviewDiagramData" id="646"> 7820 + <field name="entities"><list> 7821 + <object ref="108"/> 7822 + 7823 + <object ref="61"/> 7824 + 7825 + <object ref="114"/> 7826 + 7827 + <object ref="60"/> 7828 + 7829 + <object ref="63"/> 7830 + 7831 + <object ref="62"/> 7832 + 7833 + <object ref="70"/> 7834 + 7835 + <object ref="135"/> 7836 + 7837 + <object ref="107"/> 7838 + 7839 + <object ref="78"/> 7840 + 7841 + <object ref="77"/> 7842 + 7843 + <object ref="64"/> 7844 + 7845 + <object ref="113"/> 7846 + </list> 7847 + </field> 7848 + </object> 7849 + </field> 7850 + <field name="agentOverviewDiagramNotes">Notes for AgentOverviewDiagram: Unattached action. Not sure where to attach 7851 + </field> 7852 + <field name="scenariosDiagramData"> 7853 + <object type="ScenariosDiagramData" id="647"> 7854 + </object> 7855 + </field> 7856 + <field name="goalOverviewDiagramData"> 7857 + <object type="GoalOverviewDiagramData" id="648"> 7858 + </object> 7859 + </field> 7860 + <field name="dataCouplingDiagramData"> 7861 + <object type="DataCouplingDiagramData" id="649"> 7862 + </object> 7863 + </field> 7864 + <field name="agentRoleCouplingDiagramData"> 7865 + <object type="AgentRoleCouplingDiagramData" id="650"> 7866 + </object> 7867 + </field> 7868 + <field name="agentOverviewDiagramData"> 7869 + <object type="AgentOverviewDiagramData" id="651"> 7870 + </object> 7871 + </field> 7872 + <field name="capabilityOverviewDiagramData"> 7873 + <object type="CapabilityOverviewDiagramData" id="652"> 7874 + </object> 7875 + </field> 7876 + <field name="deletedEntitiesForCodeGen"><list> 7877 + <object type="Entity" id="653"> 7878 + <field name="name">agentDiagramPair-219</field> 7879 + </object> 7880 + 7881 + <object type="Entity" id="654"> 7882 + <field name="name">planMessagePair-223</field> 7883 + </object> 7884 + 7885 + <object type="Entity" id="655"> 7886 + <field name="name">capabilityDiagramPair-226</field> 7887 + </object> 7888 + 7889 + <object type="Entity" id="656"> 7890 + <field name="name">EventA</field> 7891 + </object> 7892 + 7893 + <object type="Entity" id="657"> 7894 + <field name="name">PlanB</field> 7895 + </object> 7896 + 7897 + <object type="Entity" id="658"> 7898 + <field name="name">agentDiagramPair-222</field> 7899 + </object> 7900 + 7901 + <object type="Entity" id="659"> 7902 + <field name="name">planMessagePair-224</field> 7903 + </object> 7904 + 7905 + <object type="Entity" id="660"> 7906 + <field name="name">EventC</field> 7907 + </object> 7908 + 7909 + <object type="Entity" id="661"> 7910 + <field name="name">Cap</field> 7911 + </object> 7912 + 7913 + <object type="Entity" id="662"> 7914 + <field name="name">new</field> 7915 + </object> 7916 + 7917 + <object type="Entity" id="663"> 7918 + <field name="name">&lt;Prometheus unique entity name au.edu.rmit.cs.prometheus.datamodel.jacob.ProtocolDistributionPair ID=219&gt;</field> 7919 + </object> 7920 + 7921 + <object type="Entity" id="664"> 7922 + <field name="name">planMessagePair-194</field> 7923 + </object> 7924 + 7925 + <object type="Entity" id="665"> 7926 + <field name="name">planMessagePair-195</field> 7927 + </object> 7928 + 7929 + <object type="Entity" id="666"> 7930 + <field name="name">capabilityDiagramPair-193</field> 7931 + </object> 7932 + 7933 + <object type="Entity" id="667"> 7934 + <field name="name">Airport Agent</field> 7935 + </object> 7936 + 7937 + <object type="Entity" id="668"> 7938 + <field name="name">subscribeTAFSourceAgent</field> 7939 + </object> 7940 + 7941 + <object type="Entity" id="669"> 7942 + <field name="name">Split forecasts</field> 7943 + </object> 7944 + 7945 + <object type="Entity" id="670"> 7946 + <field name="name">Check Alertable types</field> 7947 + </object> 7948 + 7949 + <object type="Entity" id="671"> 7950 + <field name="name">subscribeTAFSSourceAgent</field> 7951 + </object> 7952 + 7953 + <object type="Entity" id="672"> 7954 + <field name="name">Obtain TAF data Scenario</field> 7955 + </object> 7956 + 7957 + <object type="Entity" id="673"> 7958 + <field name="name">Obtain AWS</field> 7959 + </object> 7960 + 7961 + <object type="Entity" id="674"> 7962 + <field name="name">Determine if relevant</field> 7963 + </object> 7964 + 7965 + <object type="Entity" id="675"> 7966 + <field name="name">message1</field> 7967 + </object> 7968 + 7969 + <object type="Entity" id="676"> 7970 + <field name="name">TrendDiscrepancyE</field> 7971 + </object> 7972 + 7973 + <object type="Entity" id="677"> 7974 + <field name="name">CalculateTrendP</field> 7975 + </object> 7976 + 7977 + <object type="Entity" id="678"> 7978 + <field name="name">Check trends</field> 7979 + </object> 7980 + 7981 + <object type="Entity" id="679"> 7982 + <field name="name">planMessagePair-201</field> 7983 + </object> 7984 + 7985 + <object type="Entity" id="680"> 7986 + <field name="name">agentDiagramPair-200</field> 7987 + </object> 7988 + 7989 + <object type="Entity" id="681"> 7990 + <field name="name">User Subscribes</field> 7991 + </object> 7992 + 7993 + <object type="Entity" id="682"> 7994 + <field name="name">planMessagePair-84</field> 7995 + </object> 7996 + 7997 + <object type="Entity" id="683"> 7998 + <field name="name">capabilityDiagramPair-83</field> 7999 + </object> 8000 + 8001 + <object type="Entity" id="684"> 8002 + <field name="name">AWSRequest</field> 8003 + </object> 8004 + </list> 8005 + </field> 8006 + </object> 8007 + </field> 8008 + </object> 8009 + 8010 + </jacob>
+112
ref/pd_tutorial/styles.css
··· 1 + /* headings */ 2 + 3 + .h1 {font-size:20px; 4 + padding:3px; 5 + border:1px solid black; 6 + } 7 + .h2 {font-size:17px; 8 + font-weight:bold; 9 + background-color:#F0F0F0; 10 + } 11 + .h3 {font-size:16px; 12 + font-weight:bold; 13 + padding-left:30px; 14 + } 15 + .h4 {font-size:14px; 16 + padding-left:45px; 17 + } 18 + 19 + /* end headings */ 20 + 21 + /* list */ 22 + 23 + .mylist { 24 + list-style-type:none; 25 + border:solid black 1px; 26 + padding:15px; 27 + } 28 + .mylist a { 29 + color:black; 30 + text-decoration:none; 31 + font-weight:bold; 32 + } 33 + li { 34 + list-style-type:none; 35 + } 36 + ul a:link { 37 + font-size:15px; 38 + padding-top:5px; 39 + border-top:5px; 40 + padding-left:-10px; 41 + 42 + } 43 + ul a:hover { 44 + color:#0066FF 45 + } 46 + ul a:visited:hover { 47 + color:#0066FF 48 + } 49 + 50 + ul ul a:link { 51 + list-style-type:none; 52 + font-size:14px; 53 + font-weight:normal; 54 + } 55 + ul ul a:hover { 56 + color:#0066FF; 57 + } 58 + ul ul a:visited { 59 + list-style-type:none; 60 + font-size:14px; 61 + font-weight:normal; 62 + } 63 + ul ul ul a:link { 64 + list-style-type:none; 65 + font-size:13px; 66 + color:#333333; 67 + font-style:italic 68 + 69 + } 70 + ul ul ul a:visited { 71 + list-style-type:none; 72 + font-size:13px; 73 + color:#333333; 74 + font-style:italic 75 + 76 + } 77 + ul ul ul a:hover { 78 + color:#0066FF; 79 + } 80 + ul ul ul ul a:link { 81 + list-style-type:none; 82 + font-size:11px; 83 + font-style:normal; 84 + } 85 + ul ul ul ul a:visited { 86 + list-style-type:none; 87 + font-size:11px; 88 + font-style:normal; 89 + } 90 + ul ul ul ul a:hover { 91 + color:#0066FF; 92 + } 93 + ul ul a:visited:hover { 94 + color:#0066FF; 95 + } 96 + 97 + /* end list */ 98 + 99 + /* back to top */ 100 + 101 + .backtotop a { 102 + font-size:12px; 103 + text-decoration:none; 104 + background:url(up_arrow_blue.gif) left no-repeat; 105 + padding-left:12px; 106 + float:right; 107 + color:#0000CC; 108 + } 109 + 110 + .backtotop a:visited { 111 + color:#0000CC; 112 + }
ref/pd_tutorial/thumbs.db

This is a binary file and will not be displayed.

+1078
ref/pd_tutorial/tutorial.html
··· 1 + <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2 + <html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>Tutorial</title><link rel="stylesheet" type="text/css" href="http://www.westciv.com/style/style.css"><link href="styles.css" rel="stylesheet" type="text/css"></head> 3 + <body> 4 + <p></p><h1 style="text-align: center;">Meteorology example.</h1><p> 5 + <br> 6 + For 7 + this example we will be creating an agent-based weather warning system 8 + using the <a href="http://www.cs.rmit.edu.au/agents/pdt/">Prometheus Design Tool</a> and the JACK programming language. The associated PDT design file can be found <a href="Meteorology%20v0.3.pd">here</a>.</p> 9 + <a name="top"></a>Contents:<br> 10 + <ul class="mylist"> 11 + <li><a href="#problem_specification">Problem Specification</a> 12 + <ul> 13 + <li><a href="#analysis_overview">Analysis Overview</a></li> 14 + <li><a href="#scenarios">Scenarios</a></li> 15 + <li><a href="#goal_overview">Goal Overview </a> 16 + <ul> 17 + <li><a href="#obtain_data_scenario">Obtain Data Scenario 18 + </a> 19 + <ul> 20 + <li><a href="#obtain_aws_data_h4">Obtain AWS data</a></li> 21 + <li><a href="#obtain_taf_data_h4">Obtain TAF data </a></li> 22 + </ul> 23 + </li> 24 + <li><a href="#alert_user">Alert User</a> 25 + <ul> 26 + <li><a href="#detect_alertable_situation">Detect alertable situation </a></li> 27 + </ul> 28 + </li> 29 + <li><a href="#subscribe_user">Subscribe User </a></li> 30 + </ul> 31 + </li> 32 + <li><a href="#system_roles">System Roles </a> 33 + <ul> 34 + <li><a href="#obtain_aws_data">Obtain AWS data</a></li> 35 + <li><a href="#obtain_taf_data">Obtain TAF data</a></li> 36 + <li><a href="#create_forecast">Create Forecast</a></li> 37 + <li><a href="#check_for_high_wind">Check for High Wind</a></li> 38 + <li><a href="#check_for_forecast">Check for forecast discrepancy</a></li> 39 + <li><a href="#check_for_change_in_immediate_forecast">Check for change in immediate forecast</a></li> 40 + <li><a href="#create_warning">Create Warning</a></li> 41 + <li><a href="#add_subscription">Add Subscription</a></li> 42 + <li><a href="#subscribe_to_airport">Subscribe to Airport</a></li> 43 + <li><a href="#display_warning">Display Warning </a></li> 44 + <li> </li> 45 + </ul> 46 + </li> 47 + </ul> 48 + </li> 49 + <li><a href="#architectural_design">Architectural Design</a> 50 + <ul> 51 + <li><a href="#data_coupling">Data Coupling </a></li> 52 + <li><a href="#agentrole_grouping">Agent Role Grouping </a> 53 + <ul> 54 + <li><a href="#airport_agent">Airport Agent</a></li> 55 + <li><a href="#gui_agent">GUI Agent</a></li> 56 + <li><a href="#forecaster_agent">Forecaster Agent </a></li> 57 + </ul> 58 + </li> 59 + <li><a href="#agent_acquaintance">Agent Acquaintance </a></li> 60 + <li><a href="#system_overview">System Overview</a> 61 + <ul> 62 + <li><a href="#data_retrival">Data Retrieval</a></li> 63 + <li><a href="#subscriptions_protocol">Subscriptions Protocol</a></li> 64 + <li><a href="#warnings_protocol">Warnings Protocol </a></li> 65 + </ul> 66 + </li> 67 + </ul> 68 + </li> 69 + <li><a href="#detailed_design">Detailed Design </a> 70 + <ul> 71 + <li>Airport Agent </li> 72 + <li>Gui Agent </li> 73 + <li>Forecaster Agent </li> 74 + </ul> 75 + </li> 76 + </ul> 77 + <span style="font-weight: bold;"><p class="h1"><a name="problem_specification"></a>Problem Specification</p> 78 + <span class="backtotop"><a href="#top">back to top</a></span> 79 + </span>The 80 + problem calls for a multi-agent system to provide various types of 81 + weather warnings to users based on forecasts and actual sensor readings 82 + from various airports. Any number of users should be able to subscribe 83 + to one or more airports and receive warnings for specific scenarios at 84 + those airports.<br> 85 + <br style="font-weight: bold;"><span style="font-weight: bold;"> 86 + Forecast data</span><br> 87 + The forecast data will be sent 88 + from one central forecaster and will contain hourly predictions for all 89 + airports for 12 hours into the future. These predictions will include:<br> 90 + &nbsp;&nbsp;&nbsp; -Predicted wind speed (in knots)<br> 91 + &nbsp;&nbsp;&nbsp; -Predicted rainfall (in mm)<br> 92 + &nbsp;&nbsp;&nbsp; -Predicted temperature (in degrees 93 + celsius)<span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span></span><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span><br> 94 + &nbsp;&nbsp;&nbsp; -</span>Predicted fog<br> 95 + <br><span style="font-weight: bold;"> 96 + AWS data</span><br> 97 + The 98 + AWS data is produced from sensors on the ground at the various 99 + airports. This data changes every minute however will only be sent to 100 + the system every 15 minutes. The system is able to request additional, 101 + up-to-date data and this will be accurate to the nearest minute. Each 102 + airport will produce and send its own set of AWS data so each set will 103 + only contain readings for a single airport. The data includes:<br> 104 + &nbsp;&nbsp;&nbsp; -Actual current wind speed (in knots)<br> 105 + &nbsp;&nbsp;&nbsp; -Actual rainfall (in mm)<br> 106 + &nbsp;&nbsp;&nbsp; -Actual current temperature (in degrees 107 + celsius)<br> 108 + &nbsp;&nbsp;&nbsp; -The presence of fog<br> 109 + <br><span style="font-weight: bold;"> 110 + Warnings</span><br> 111 + There 112 + are several specified situations which should trigger a warning which 113 + will be sent to all subscribed users. Users can then select which types 114 + of warnings they want displayed.<br> 115 + <br><span style="font-weight: bold;"> 116 + Discrepancy between forecast and actual reading</span><br> 117 + A 118 + warning should be displayed when there is a significant difference 119 + between the forecast for a given hour and the actual reading. 120 + Specifically where:<br> 121 + &nbsp;&nbsp;&nbsp; - There is a difference of 5 knots in 122 + wind speed<br> 123 + &nbsp;&nbsp;&nbsp; - There is a difference in the presence 124 + of fog<br> 125 + <br style="font-weight: bold;"><span style="font-weight: bold;"> 126 + High wind situation likely</span><br> 127 + A 128 + warning should be displayed where there is a significant concern that 129 + there will be a high wind situation at an airport in the next 6 hours. 130 + A high wind situation is considered likely if :<br> 131 + &nbsp;&nbsp;&nbsp; -There is a forecast for wind greater 132 + than 30 knots<br> 133 + &nbsp;&nbsp;&nbsp; 134 + -Current wind strength is greater than 5 knots, is significantly higher 135 + than forecast, and is increasing fairly rapidly.<br> 136 + &nbsp;&nbsp;&nbsp; -Wind strength is increasing, is over 20 137 + knots, and is higher than forecast<br> 138 + <br><span style="font-weight: bold;"> 139 + Significant change in the forecast for the next 2 hours</span><br> 140 + A 141 + warning should be displayed where there is a significant difference in 142 + the forecast for the next 2 hours from what was previously forecast 143 + with respect to any of the following :<br> 144 + &nbsp;&nbsp;&nbsp; -Whether there is a high wind situation 145 + of not (where high wind is considered to be 30 knots or greater)<br> 146 + &nbsp;&nbsp;&nbsp; - The presence of fog<br> 147 + &nbsp;&nbsp;&nbsp; -Temperature below zero<br> 148 + &nbsp;&nbsp;&nbsp; -High rainfall situation (over 10mm)<br> 149 + <br><span style="font-weight: bold;"> 150 + Starting a new Prometheus Design file</span><br> 151 + 1. Open the Prometheus Design Tool using the command<br> 152 + &nbsp;&nbsp;&nbsp; <span style="font-style: italic;">java 153 + -jar pdt_jar_file.jar<br> 154 + &nbsp;&nbsp;&nbsp; </span>where <span style="font-style: italic;"><span style="font-style: italic;">pdt_jar_file.jar </span></span>is 155 + the pdt application file.<br> 156 + <br> 157 + 2. Start a new design document using File | New.<br> 158 + <br> 159 + 3. Give the document a name and description as shown below:<br> 160 + &nbsp;<img src="fig1.jpg" style="width: 340px; height: 290px;" alt="Figure 1"><br> 161 + Figure 1: Project properties<br><br><h2 style="text-align: center;">System Specification</h2> 162 + <p class="h2"><a name="analysis_overview"></a>Analysis Overview Diagram</p> 163 + <span class="backtotop"><a href="#top">back to top</a></span> 164 + <br> 165 + The 166 + analysis overview diagram is designed to show the interactions between 167 + the system and the environment. At this abstract level it is necessary 168 + to identify the actors, scenarios, percepts and actions involved in the 169 + system. This consists of a two step process. Firstly, we identify the 170 + actors and the scenarios they participate in with the system. Secondly, 171 + we identify and define the actions and percepts between the actors and 172 + the system.<br> 173 + <br> 174 + The actors are all the people or external systems associated with the 175 + system. In our system we can identify three actors :<br> 176 + User 177 + -&nbsp;the end user who will be accessing the system via GUI and 178 + will 179 + be capable of viewing warnings and making subsriptions.<br> 180 + AWS Sensor - the individual sensors at each airport which will produce 181 + the actual readings<br> 182 + Forecaster - the person/system which will produce the 12 hour forecasts 183 + for each airport<br> 184 + <br style="color: black;"><span style="color: black;"> 185 + The 186 + scenarios are the processes which the system uses to handle the 187 + percepts and produce the actions.</span> <span style="font-weight: bold;"></span>In our system we can identify three 188 + high level scenarios:<br> 189 + Subscribe User Scenario - the process which handles the user 190 + subscription and stores it.<br> 191 + Alert User Scenario - the process which detects an alertable situation 192 + and displays the warning to the user<br> 193 + Obtain Data Scenario - the process which subscribes to the 194 + sensor/forecaster and stores the incoming data.<br><span style="font-style: italic;">Note 195 + PDT will automatically add the name Scenario to help differentiate 196 + between goals with the same name and as such it is not necessary to 197 + include yourself.</span><br><br> 198 + The 199 + percepts are all the types information which come into the system from 200 + the environment. In our system we can identify three percepts:<br> 201 + Subscription - the subscription sent to an airport from a user.<br> 202 + AWS readings - the actual readings from sensors sent to the system 203 + every 15 minutes<br> 204 + TAF data - the forecasts sent from a central forecaster to the system 205 + every hour<br> 206 + <br> 207 + The actions are everything that is sent from the system to the 208 + environment. &nbsp;In our system we can identify four actions:<br> 209 + Show Warning - the warning that is displayed to the User actor via a 210 + GUI.<br> 211 + Subscribe 212 + AWS source/Subscribe TAF source - the system must send a subscrption to 213 + the airport sensors and the central forecaster, registering it as the 214 + destination for AWS readings and TAF data.<br> 215 + Request data - a request sent to an airport sensor for up to date data.<br> 216 + <br> 217 + Using 218 + the various buttons in the toolbar we can create the analysis diagram 219 + from the components we have identified. We can then link these 220 + components as appropriate using the Edge tool which is found in the toolbar on the left and circled in the diagram below..<br> 221 + <br><span style="font-weight: bold; font-style: italic;"> 222 + Exercise: - Using the information provided above, create the Analysis 223 + Overview Diagram.</span><br> 224 + <img src="fig2.jpg" style="width: 905px; height: 447px;" alt="Figure 2. Analysis Overview Diagram"><br> 225 + Figure 2 : Analysis Overview Diagram<br> 226 + <br> 227 + <p class="h2"><a name="scenarios"></a>Scenarios Details </p> 228 + <span class="backtotop"><a href="#top">back to top</a></span> 229 + <br>You iterate over the scenario specification and goal diagram. They 230 + are inter-related. Scenarios are an example of the dynamics - the 231 + process of how something will (or rather, can - its just one example) 232 + happen. It is a sequence for simplicity of understanding, and is 233 + therefore <span style="font-style: italic;">one possible</span> 234 + sequence and should be thought of as a high level trace of a particular 235 + possible (common) run. Conversely, the goal hierarchy is a static 236 + representation &nbsp;- it tries to break down all the high level goals 237 + into subgoals.<br>&nbsp;&nbsp;&nbsp; Each scenario must be associated 238 + with some goal, that represents what that scenario is trying to 239 + achieve. By default, a goal is created with the same name as the 240 + scenario, though this can be changed: you can edit the name of the goal 241 + associated with the scenario in the scenario descriptor).<br>&nbsp;&nbsp;&nbsp; 242 + The scenario diagram (in the diagram pane) is not always useful. It 243 + exists to allow access to scenario specifications by clicking on an 244 + icon although these cannot also be accessed via the Entities menu. It 245 + also shows which scenarios are used within other scenarios which may be 246 + useful. While it may not need to be used in the design process, it can 247 + be used in cases where the top level scenario in the Analysis overview 248 + diagram is really a collection of discrete scenarios. This is in fact 249 + the case for the Obtain Data Scenario.<br><br>From the Analysis overview diagram three key scenarios which the 250 + system must perform have been identified. The scenario diagram can be 251 + used to go into&nbsp;these processes in more depth and identify the key 252 + goals, actions and percepts and the sequence in which they take place. 253 + It must be made clear here that the designing of a system using PDT is 254 + an <span style="font-style: italic;">iterative </span>process 255 + and it is not expected that in the first iteration, all of the 256 + information will be known. For example, in each of the scenario 257 + editors, it is possible to specify which role each goal and action 258 + applies to however much of this information will not be known at this 259 + stage of the process. Instead, leave these fields blank, and as they 260 + are identified in later sections of the design, you should come back 261 + and fill them in appropriately.<br><br><span style="font-weight: bold;">Obtain data scenario</span><br><div style="margin-left: 40px;">This 262 + scenario can logically be split into two separate high level processes 263 + - obtaining AWS data and obtaining TAF data. As these are relatively 264 + isolated processes, they can be separated into two different scenarios 265 + before describing the details. Using the Scenario diagram, you can add 266 + two new scenarios, namely the Obtain TAF data scenario and the Obtain 267 + AWS data scenario. Then using the edge tool, create a link from the 268 + Obtain Data scenario to each of the new scenarios.<br><br>To 269 + edit the details of a scenario, double click on its icon in the 270 + Scenario diagram to bring up the Scenario Dialog. Steps can now be 271 + added, removed or rearranged using the buttons at the bottom. To insert 272 + a step, click the Insert Step button, then choose the step type and 273 + name.<br>Note: This dialog can also be accessed via the Entiites menu.<br><img src="fig45.jpg" style="width: 468px; height: 539px;" alt="Fig 45"><br>Figure 45: Scenario details can be described using the Scenario Dialog, accessed by double clicking on the icon.<br><br><img src="fig27.JPG" style="width: 401px; height: 131px;" alt="Figure 27"><br>Figure 27: The Obtain Data Scenario is split into two separate scenarios<br><br><span style="font-weight: bold;">Obtain TAF data scenario</span><br><div style="margin-left: 40px;">&nbsp;This 274 + scenario covers the necessary processes to obtain forecasts. This 275 + includes all goals, actions and percepts relating to the system in the 276 + order in which they take place:<br><div style="margin-left: 40px;">- Subscribing to the forecaster<br>- Data arriving for all airports<br>- Splitting the data into individual airports and communicating individual forecasts to the appropriate airports<br>- Receiving the individual forecast at the airport<br>- Storing the forecast in an appropriate data store</div><br>&nbsp;For 277 + each of the above processes, each can be identified as either an 278 + Action, Percept or Goal. Actions are processes inside the system which 279 + affect the external environment. Percepts are changes to the 280 + environment which may affect the system. Goals relate to processes 281 + which the system should complete internally.<br><br><span style="font-style: italic;"><span style="font-weight: bold;">Exercise: 282 + Using the information provided in the Analysis Overview diagram and 283 + your knowledge of Goals, Actions and percepts, can you identify which 284 + of the above processes are Goals, Percepts and Actions? Create the 285 + Obtain TAF scenario, adding each of the above&nbsp;steps with the 286 + correct identifier.</span></span><br><br></div></div><div style="margin-left: 40px;"><br><span style="font-weight: bold;">Obtain AWS data scenario<br></span><div style="margin-left: 40px;"><span style="font-weight: bold;">&nbsp;</span>This 287 + scenario covers the necessary processes to obtain AWS readings from the 288 + sensors and store them appropriately. The following steps can be 289 + identified as was done with the Obtain TAF scenario:<br><br><div style="margin-left: 40px;">- Data arriving for an individual airport (Percept)<br>- Reading the incoming data (Goal)<br>- Updating beliefsets with new data (Goal)<br>- Subcribing to the forecaster (Action)<span style="font-weight: bold;"></span></div></div><div style="margin-left: 40px;">The 290 + sequence of steps is an important part of a scenario as knowing the 291 + order of events can help determine the roles which will be associated 292 + with them.<br><br><span style="font-style: italic;"><span style="font-weight: bold;">Exercise: 293 + The above steps are in a random order. Can you identify a feasible 294 + sequence of the steps shown above? Create the Obtain AWS Data Scenario, 295 + adding each of the above steps in the correct order.</span></span><br></div></div> 296 + <br><span style="font-weight: bold;">Subscribe User Scenario<br></span>This 297 + scenario covers the necessary processes to subscribe a user to the 298 + system. First, the user must make the subscription attempt, probably 299 + via a GUI. This subscription is received by the system, passed to the 300 + appropriate agent and stored appropriately<span style="font-weight: bold;">.</span> Thus we can identify the following steps, in order:<br><div style="margin-left: 40px;">- User makes a Subscription attempt via GUI (Percept)<br>- Create subcription and communicate with relevant agent (Goal)<br>- Update beliefs with new subscription (Goal)</div><br><span style="font-weight: bold;">Alert User Scenario<br><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span></span>This 301 + scenario covers the steps necessary to warn a user about an alertable 302 + situation. &nbsp;Once a situation is detected, by testing if any of the 303 + conditions described in the Problem Specification hold against the 304 + beliefs, a warning containing the appropriate information must be 305 + created. The list of subscribed users should be checked to determine 306 + those subscribed to receive warnings about the given airport. The 307 + warning should then be displayed to the user via a GUI. Thus we can 308 + identify the following steps, in order:<br><div style="margin-left: 40px;">- Detect Alertable situation (Goal)<br>- Create warning with relevant information (Goal)<br>- Check subscribers for given airport (Goal)<br>- Display warning to user (Action)</div><br> 309 + <p class="h2"><a name="goal_overview"></a>Goal Overview Diagram</p> 310 + <span class="backtotop"><a href="#top">back to top</a></span> <br>The 311 + iterative nature of the design process is very important to note when 312 + working with the goal overview diagram and the Scenario specifications. 313 + Changes made to one diagram should be reflected in the other, and PDT 314 + helps to ensure this by propogating some changes across automatically. 315 + The goal overview should still be considered a high level diagram, and 316 + although there is some control information (specifically with AND vs 317 + OR), this diagram does not show the control structure of a program. 318 + ANDed subgoals may not be used in all cases, only some. This detail is not considered/need at this level.<br> 319 + <br> 320 + <img src="fig3.jpg" style="width: 506px; height: 187px;" alt="Figure 3: Base goals" title="Figure 3: Base goals"><br> 321 + Figure 3: The automatically created high-level goals.<br> 322 + <br> 323 + From these high-level goals several sub goals can be defined. For each 324 + set of sub-goals either an AND or OR constraint can be attached. AND 325 + constraints indicate that all of the sub-goals must be achieved in 326 + order to achieve the parent goal. An OR constraint indicates that only 327 + one of the sub-goals needs to be achieved in order for the parent goal 328 + to be achieved. By default PDT uses an AND constraint however you can 329 + change to an OR constraint using the OR refinement checkbox under the 330 + parent goal's descriptor.<br><img src="fig41.jpg" style="width: 522px; height: 174px;" alt="Fig 41"><br>Figure 41: The OR refinement.<br> 331 + <br> 332 + <span class="h3"><a name="obtain_data_scenario" id="obtain_data_scenario"></a>Obtain Data</span><br> 333 + <div style="margin-left: 40px;"><span class="backtotop"><a href="#top">back to top</a></span> 334 + From the Problem Description it is clear that we have two distinct data 335 + sources and as such, the parent goal of Obtain Data can easily be split 336 + into two sub-goals 337 + of obtaining AWS data and TAF data. Each of these are seperate 338 + processes which must both be completed to achieve the parent goal and 339 + thus an AND constraint is used.<br> 340 + We can then break each of these sub-goals down further:<br></div> 341 + <p class="h4"><a style="font-weight: bold;" name="obtain_aws_data_h4"></a><span style="font-weight: bold;">Obtain AWS data</span> 342 + </p><p> 343 + <span class="backtotop"><a href="#top">back to top</a></span> 344 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;Subgoals:<br> 345 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 346 + &nbsp;&nbsp;&nbsp; -Request AWS data - as AWS data can 347 + optionally be requested, this goal can be added and marked as optional.<br> 348 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 349 + &nbsp;&nbsp;&nbsp; -Recieve AWS data - the system needs to 350 + receive the AWS data and translate it into the appropriate format<br> 351 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 352 + &nbsp;&nbsp;&nbsp; -Update AWS beliefs - the system needs 353 + to store the incoming data in an appropriate data store.<br> 354 + <br> 355 + </p><p class="h4"><a name="obtain_taf_data_h4"></a><span style="font-weight: bold;">Obtain TAF data</span></p> 356 + 357 + <span class="backtotop"><a href="#top">back to top</a></span> 358 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Subgoals:<br> 359 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 360 + &nbsp;&nbsp;&nbsp; -Send to airports - as the TAF data 361 + arrives with data for all airports, it will need to be split up and 362 + sent to each individual airport<br> 363 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 364 + &nbsp;&nbsp;&nbsp; -Receive TAF data - each airport needs 365 + to receive the TAF data and translate it into the appropriate format<br> 366 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 367 + &nbsp;&nbsp;&nbsp; -Update TAF beliefs - each airport needs 368 + to store the incoming data in an appropriate data store.<br> 369 + <br> 370 + <img src="fig4.jpg" style="width: 637px; height: 162px;" alt="Figure 4 - Obtain data subgoals"><br> 371 + <br> 372 + <br> 373 + <span class="h3"><a name="alert_user"></a>Alert User<br> 374 + </span>The alert user goal is a very high-level goal that 375 + encapsulates much of the system logic. There are 4 key goals we can 376 + identify that will need to be achieved in order to achieve the goal of 377 + alerting the user: 378 + <p class="h4"><a name="detect_alertable_situation"></a><span style="font-weight: bold;">Detect alertable situation</span></p> 379 + <span class="backtotop"><a href="#top">back to top</a></span><span style="font-weight: bold;"> 380 + &nbsp;&nbsp;&nbsp; &nbsp; </span>This 381 + high-level goal encapsulates all of the processing involved in 382 + determining if there is an alertable situation at an airport. It can 383 + very logically be broken down into detecting each of the different 384 + types of alertable situations as specified in the problem description:<br> 385 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 386 + &nbsp;&nbsp;&nbsp; -Recognise change in immediate forecast<br> 387 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 388 + &nbsp;&nbsp;&nbsp; -Recognise forecast discrepancy<br> 389 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 390 + &nbsp;&nbsp;&nbsp; -Recognise high wind situation<br> 391 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 392 + &nbsp; As it is only necessary for one of the sub-goals to succeed 393 + in order for the parent goal to succeed, an OR constraint can be 394 + utilised.<br> 395 + <br> 396 + <div style="margin-left: 40px;">&nbsp;Each of these 397 + goals can then be broken down further into their respective subgoals:<br> 398 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="font-weight: bold;">Recognise change in immediate 399 + forecast</span><br> 400 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Subgoals:<br> 401 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 402 + &nbsp;&nbsp;&nbsp; -Check high wind change -<span style="font-style: italic;"> identify if there has been a 403 + change in the high wind situation in the immediate forecast</span><br> 404 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 405 + &nbsp;&nbsp;&nbsp; -Check fog change - <span style="font-style: italic;">identify if there has been a 406 + change in the presence of fog in the immediate forecast</span><br> 407 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 408 + &nbsp;&nbsp;&nbsp; -Check temp below zero -<span style="font-style: italic;"> identify if there has been a 409 + change in the presence of below zero temperatures in the immediate 410 + forecast</span><br> 411 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 412 + &nbsp;&nbsp;&nbsp; -Check high rain - <span style="font-style: italic;">identify if there has been a 413 + change in the presence of high rain in the immediate forecast</span><br> 414 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <img src="fig5.jpg" style="width: 425px; height: 105px;" alt="Figure 5 - Recognise change in immediate forecast"><br> 415 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="font-style: italic;">Figure 5: Recognise change in 416 + immediate forecast</span><br> 417 + <br> 418 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="font-weight: bold;">Recognise forecast discrepancy</span><br> 419 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Subgoals:<br> 420 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 421 + &nbsp;&nbsp;&nbsp; -Check wind - <span style="font-style: italic;">identify a discrepancy of 5 422 + knots or more between the forecast and actual reading</span><br> 423 + <span style="font-style: italic;">&nbsp;&nbsp;&nbsp; 424 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; -</span>Check 425 + fog - <span style="font-style: italic;">identify a 426 + discrepancy in the presence of fog between the forecast and actual 427 + reading</span><br> 428 + <span style="font-style: italic;">&nbsp;&nbsp;&nbsp; 429 + &nbsp;&nbsp;&nbsp; <img src="fig6.jpg" style="width: 248px; height: 109px;" alt="Figure 6: Recognise forecast discrepancy"></span><br> 430 + <span style="font-style: italic;">&nbsp;&nbsp;&nbsp; 431 + &nbsp;&nbsp;&nbsp; Figure 6: Recognise forecast discrepancy</span><br> 432 + <span style="font-style: italic;"></span><br> 433 + <span style="font-style: italic;">&nbsp;&nbsp;&nbsp; 434 + &nbsp;&nbsp;&nbsp; </span><span style="font-weight: bold;">Recognise high wind situation</span><br> 435 + <span style="font-weight: bold;">&nbsp;&nbsp;&nbsp; 436 + &nbsp;&nbsp;&nbsp; </span>Subgoals:<br> 437 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 438 + &nbsp;&nbsp;&nbsp; -Check high wind - <span style="font-style: italic;">identify wind speeds of greater 439 + than 30 knots</span><br> 440 + <span style="font-style: italic;">&nbsp;&nbsp;&nbsp; 441 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; -</span>Check 442 + really unexpected, increasing wind - <span style="font-style: italic;">identify wind that is greater 443 + than 5 knots, is significantly higher than forecast and is increasing</span><br> 444 + <span style="font-style: italic;">&nbsp;&nbsp;&nbsp; 445 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; -</span>Check 446 + high, unexpected, increasing wind - <span style="font-style: italic;">identify wind that is greater 447 + than 20 knots, higher than forecast and </span>is increasing<br> 448 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <img src="fig7.jpg" style="width: 625px; height: 119px;" alt="Figure 7 - Recognise high wind situation"><br> 449 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="font-style: italic;">Figure 7: Recognise high wind 450 + situation</span><br> 451 + <br> 452 + </div> 453 + <br> 454 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 455 + &nbsp; As well as detecting an alertable 456 + situation, there are three other goals which must be achieved in order 457 + to achieve the Alert User goal:<br> 458 + <div style="margin-left: 40px;">&nbsp;&nbsp;&nbsp; 459 + &nbsp;&nbsp;&nbsp; Create Warning - <span style="font-style: italic;">create a warning with an 460 + appropriate message<br> 461 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span>Send 462 + to Users - <span style="font-style: italic;">determine 463 + which users are subscribed and send the warning to them<br> 464 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span>Display 465 + Warning - <span style="font-style: italic;">display the 466 + warning to the user via the GUI.</span>&nbsp;&nbsp;&nbsp; 467 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<img src="fig8.jpg" style="width: 693px; height: 361px;" alt="Fig 8 - Alert Users"><br> 468 + <span style="font-style: italic;">Figure 8 - Alert User 469 + goal hierarchy</span><br> 470 + <span class="h3" style="font-weight: bold;"><a name="subscribe_user"></a>Subscribe 471 + User<br></span> 472 + <span class="backtotop"><a href="#top">back to top</a></span> 473 + 474 + <div style="margin-left: 40px;">The subscribe user goal is 475 + relatively simple and can be split into two subgoals:<br> 476 + &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Make 477 + Subscription - <span style="font-style: italic;">create a 478 + subscription and send it to the appropriate airport</span><br> 479 + <span style="font-style: italic;">&nbsp;&nbsp;&nbsp; 480 + &nbsp;&nbsp;&nbsp; </span>Update Subscriptions 481 + Beliefs - <span style="font-style: italic;">store the 482 + subscription in an appropriate data store.</span><br> 483 + </div> 484 + <p class="h2"><a name="system_roles"></a>System Roles</p> 485 + 486 + <span class="backtotop"><a href="#top">back to top</a></span> 487 + <br> 488 + <div style="margin-left: 40px;">The next stage of the process is to 489 + group similar goals together into roles. Each role should be limited in 490 + scope, and be able to be described fully be 1-2 sentences. Grouping is 491 + done using the System Roles diagram. Select a tole icon, click on the 492 + diagram pane, and provide a suitable name. Then select the goal icon, 493 + and one by one, add goals, and connect them to the role icon using the 494 + arrow. Do this for each grouping of goals. It is not necessary to 495 + include <span style="font-style: italic;">every </span>goal 496 + from 497 + the goal hierarchy. If all of the sub goals are related to the same 498 + role, it will suffice to simply add the parent goal. Likewise, if all 499 + the sub-goals are displayed amongst various roles, it is not necessary 500 + to add the parent goal anywhere. The actions and percepts identified in 501 + the analysis overview diagram will automatically be placed in this 502 + diagram. Percepts and actions are also part of roles, and should be 503 + linked to a role in the same way as goals. Each percept and action 504 + should be part of some role. They can also be part of multiple roles.<br><br>While 505 + at this stage it is not strictly necessary to consider the agents to 506 + which these roles will be allocated, it is a good practice to keep 507 + roles small and specific so that at the appropriate time it is possible 508 + to consider different ways of combining things within agents.<br> 509 + <br> 510 + For this system, the following roles were identified:<br> 511 + <br> 512 + </div> 513 + <div style="margin-left: 40px;"><span class="h3" style="font-weight: bold;"><a name="obtain_aws_data"></a>Obtain AWS data</span><br> 514 + <span class="backtotop"><a href="#top">back to top</a></span> 515 + This role receives AWS data, both automatically and on request, and updates all necessary storage of this data..<br> 516 + <div style="margin-left: 40px;">Goals:<br> 517 + <div style="margin-left: 40px;">-Update AWS beliefs<br> 518 + -Recieve AWS data<br> 519 + -Request AWS data<br> 520 + </div> 521 + Actions:<br> 522 + <div style="margin-left: 40px;">-Request Data<br> 523 + -Subsribe AWS source data</div> 524 + Percepts:<br> 525 + <div style="margin-left: 40px;">-AWS data <br> 526 + </div> 527 + <br> 528 + </div> 529 + </div> 530 + <div style="margin-left: 40px;"><img src="fig9.jpg" style="width: 391px; height: 145px;" alt="Figure 9 - Obtain AWS role"><br> 531 + <span style="font-style: italic;">Figure 9: Obtain AWS 532 + data role diagram</span><br> 533 + <br> 534 + <span style="font-weight: bold;"><span class="h3"><a name="obtain_taf_data"></a>Obtain TAF data</span><br> 535 + <span class="backtotop"><a href="#top">back to top</a></span> </span>This is&nbsp; This role deals solely with receiving an individual forecast, 536 + translating it into the appropriate format and then storing it into an 537 + appropriate data store.<br> 538 + <div style="margin-left: 40px;">Goals:<br> 539 + <div style="margin-left: 40px;">-Receive TAF data<br> 540 + -Update TAF beliefs</div> 541 + </div> 542 + <span style="font-weight: bold;"></span><br> 543 + <img src="fig10.jpg" style="width: 137px; height: 124px;" alt=""><br> 544 + <span style="font-style: italic;">Figure 10: Obtain TAF 545 + data role diagram</span><br> 546 + <br> 547 + <span style="font-weight: bold;"><span class="h3"><a name="create_forecast"></a>Create Forecast</span><br> 548 + <span class="backtotop"><a href="#top">back to top</a></span> 549 + </span>This roles handles the incoming percept, then splits it and sends individual forecasts to the appropriate locations<br> 550 + <div style="margin-left: 40px;">Goals:<br> 551 + <div style="margin-left: 40px;">-Send to airports <br> 552 + </div> 553 + Percepts:<br> 554 + <div style="margin-left: 40px;">-TAF data</div> 555 + </div> 556 + <span style="font-weight: bold;"><span style="font-weight: bold;"></span><br> 557 + <img src="fig11.jpg" style="width: 225px; height: 104px;" alt=""><br> 558 + </span><span style="font-style: italic;">Figure 11: 559 + Create forecast role diagram</span><span style="font-weight: bold;"><br> 560 + <br> 561 + <span class="h3" style="font-weight: bold;"><a name="check_for_high_wind"></a>Check for High Wind</span><br> 562 + <span class="backtotop"><a href="#top">back to top</a></span> 563 + </span>This role&nbsp;detects high 564 + wind situations, which involves checking the AWS readings and TAF 565 + forecasts for the presence of high wind, really unexpected, increasing 566 + wind and high, unexpected, increasing wind.<br> 567 + <div style="margin-left: 40px;">Goals:<br> 568 + <div style="margin-left: 40px;">-Check for High wind<br> 569 + -Check for really unexpected, increasing wind<br> 570 + -Check for high, unexpected, increasing wind&nbsp;<br> 571 + </div> 572 + </div> 573 + <br> 574 + <img src="fig12.jpg" style="width: 408px; height: 129px;" alt=""><br> 575 + <span style="font-style: italic;">Figure 12: Check for 576 + High wind role diagram</span><br> 577 + <span class="h3"><a name="check_for_forecast"></a>Check for forecast 578 + discrepancy</span><br> 579 + <span class="backtotop"><a href="#top">back to top</a></span>This 580 + role&nbsp;detects a 581 + discrepancy in the presence of fog or high wind between forecasts and 582 + actual readings by comparing the AWS readings and TAF forecasts.<br> 583 + <div style="margin-left: 40px;">Goals:<br> 584 + <div style="margin-left: 40px;">-Check for fog<br> 585 + -Check wind</div> 586 + </div> 587 + <span style="font-weight: bold;"></span><br> 588 + <img src="fig13.jpg" style="width: 204px; height: 124px;" alt=""><br> 589 + <span style="font-style: italic;">Figure 13: Check for 590 + forecast discrepancy role diagram</span><br> 591 + <br> 592 + <span style="font-weight: bold;"><span class="h3"><a name="check_for_change_in_immediate_forecast"></a>Check for change in 593 + immediate forecast</span><br> 594 + <span class="backtotop"><a href="#top">back to top</a></span> 595 + </span>This role checks the current and recent TAF forecasts for a 596 + change in the immediate forecast in the areas of high wind, 597 + temperatures below zero, high rain or the presence of fog.<br> 598 + <div style="margin-left: 40px;">Goals:<br> 599 + <div style="margin-left: 40px;">-Check for high wind change<br> 600 + -Check for temp below zero change<br> 601 + -Check for high rain change<br> 602 + -Check for fog change</div> 603 + </div> 604 + <br> 605 + <img src="fig14.jpg" style="width: 479px; height: 132px;" alt=""><br> 606 + <span style="font-style: italic;">Figure 14: Check for 607 + change in immediate forecast role diagram</span><br> 608 + <br> 609 + <span style="font-weight: bold;"><span class="h3"><a name="create_warning"></a>Create warning</span><br> 610 + <span class="backtotop"><a href="#top">back to top</a></span> 611 + </span>This role is used to create a relevant warning message, and pass 612 + it on to the appropriate users by checking the user subscriptions.<br> 613 + <div style="margin-left: 40px;">Goals:<br> 614 + <div style="margin-left: 40px;">-Create Warning<br> 615 + -Check users</div> 616 + </div> 617 + <br> 618 + <img src="fig15.jpg" style="width: 333px; height: 63px;" alt=""><br> 619 + <span style="font-style: italic;">Figure 15: Create 620 + warning role diagram<br> 621 + <span style="font-style: italic;"><br></span></span>As with the Obtain 622 + TAF Data roles, the subscription process can logically be broken into 623 + two roles. One role to accept incoming subscriptions from a user, 624 + process them and pass to the appropriate airport. A separate role could 625 + be created to handle the subscriptions for a specific airport and store 626 + in a relevant datastore.<br><span style="font-weight: bold;"><span class="h3"><a name="add_subscription" id="add_subscription"></a>Add 627 + Subscription</span><br> 628 + <span class="backtotop"><a href="#top">back to top</a></span> 629 + </span>This role deals only with storing the subscriptions for a particular airport into an appropriate data store.<br> 630 + <div style="margin-left: 40px;">Goals:<br> 631 + <div style="margin-left: 40px;">&nbsp;-Update 632 + Subscriptions beliefs</div> 633 + </div> 634 + <br> 635 + <span style="font-style: italic;"><span style="font-style: italic;"></span></span><span style="font-weight: bold;"><span style="font-weight: bold;"><img src="fig16.jpg" style="width: 190px; height: 107px;" alt=""></span></span><br> 636 + <span style="font-style: italic;">Figure 16: Add 637 + subscription role diagram</span><span style="font-weight: bold;"><span style="font-weight: bold;"><br> 638 + </span></span><span class="h3"><br> 639 + <span class="backtotop"><a href="#top">back to top</a></span> 640 + <span style="font-weight: bold;"><a name="subscribe_to_airport"></a>Subscribe to airport</span></span><span style="font-weight: bold;"><br> 641 + </span>This role must handle the user subscription from the user and pass it to the appropriate airport. and passing it to the 642 + appropriate airport agent.<span style="font-weight: bold;"><br> 643 + </span> 644 + <div style="margin-left: 40px;">Goals:<br> 645 + <div style="margin-left: 40px;">-Make subscription <br> 646 + </div> 647 + Percept:<br> 648 + <div style="margin-left: 40px;">-User subscription</div> 649 + </div> 650 + <span style="font-weight: bold;"><br> 651 + <img src="fig17.jpg" style="width: 205px; height: 146px;" alt=""></span><br> 652 + <span style="font-style: italic;">Figure 17: Subscribe to 653 + airport diagram<br> 654 + </span><br> 655 + <span class="h3" style="font-weight: bold;"><a name="display_warning"></a>Display Warning</span><span style="font-style: italic;"><br> 656 + </span> 657 + <span class="backtotop"><a href="#top">back to top</a></span>This role covers displaying the warning on the screen so 658 + that it can be viewed by the user.<br> 659 + <div style="margin-left: 40px;">Goals:<br> 660 + <div style="margin-left: 40px;">-Display warning</div> 661 + Actions:<br> 662 + <div style="margin-left: 40px;">-Show warning</div> 663 + </div> 664 + <br> 665 + <img src="fig18.jpg" style="width: 141px; height: 141px;" alt=""><br> 666 + <span style="font-style: italic;">Figure 18: Display 667 + Warning role diagram</span><br> 668 + <br> 669 + Together, this creates the following System Roles diagram:<br> 670 + <img src="fig19.jpg" style="width: 753px; height: 378px;" alt=""><br> 671 + <span style="font-style: italic;">Figure 19: Complete 672 + System Roles Diagram</span><span style="font-style: italic;"><span style="font-style: italic;"><br> 673 + <br><span style="font-style: italic;"></span></span></span>For each of 674 + the roles identified above it is necessary to fill in the relevant 675 + fields in the descriptor of the role. <br><br>An example is given below:<br><img src="fig42.jpg" style="width: 900px; height: 460px;" alt="Fig42"><span style="font-style: italic;"><span style="font-style: italic;"></span><br>Fig 42: Example Role descriptor<br><br><br></span><span style="font-weight: bold;"></span><span style="font-weight: bold;"></span><span style="font-weight: bold;"></span></div><br><h2>Scenario Specification</h2>At 676 + this point in the design process it is necessary to return to the key 677 + scenarios we identified earlier and add in the information we have on 678 + roles. This will also help us to determine the data stores which will 679 + be required by the system. We will now look at this process for the 680 + Obtain TAF data scenario.<br><br>By double clicking on the Obtain TAF 681 + Data scenario in the Scenario Diagram we can see the following steps 682 + already place in the Scenario Dialog:<br><br><img src="fig46.jpg" style="width: 588px; height: 539px;" alt="Fig46"><br>Figure 46: Scenario Dialog for Obtain TAF data before role descriptors are added.<br><br>For 683 + each of the steps we will identify the role that the step is associated 684 + with. In the System roles section above we have identified two roles 685 + which are related to the TAF data acquisition process, so it is logical 686 + that each step probably belongs to one of these roles. In order to 687 + assign a role to a step, select that step in the list and then click 688 + the "Edit" button. This will bring up a Edit Step dialog as shown below.<br><br><img src="fig47.JPG" style="width: 762px; height: 396px;" alt="Fig47"><br>Figure 47: Editing a step.<br><br>From 689 + this dialog it is possible to edit the step description, as well as 690 + identify the data and roles it is associated with by clicking the 691 + appropriate edit button. By examining our role descriptions in the 692 + previous sections we can determine which steps logically belong to each 693 + role and assign them:<br><br><table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td><span style="font-weight: bold;">Type</span></td><td style="font-weight: bold;">Step</td><td style="font-weight: bold;">Role</td></tr><tr><td>Action</td><td>SubscribeTAFSourceAgent</td><td>Create Forecast</td></tr><tr><td>Percept</td><td>TAF data Percept</td><td>Create Forecast</td></tr><tr><td>Goal</td><td>Send to Airports</td><td>Create Forecast</td></tr><tr><td>Goal</td><td>Receive TAF data</td><td>Obtain TAF data</td></tr><tr><td>Goal</td><td>Update TAF beliefs</td><td>Obtain TAF data</td></tr></tbody></table><br>Another important detail to add to the Scenario descriptors is any data 694 + which will be read or written by the step. This helps to identify which 695 + types and instances of data stores will be required.&nbsp;Note that there is 696 + a difference between data <span style="font-style: italic;">types</span> and data <span style="font-style: italic;">instances</span>. 697 + A data type defines the fields and queries that will be used to store 698 + and access the data. However there may be many data instances for any 699 + given data type. For example an AWS data type could be defined with the 700 + necessary fields and queries to store AWS readings in a suitable 701 + format. Many agents could then create their own instance of this data 702 + type and store their own beliefs inside. Identifying the data types 703 + which will be used helps to determine how the roles will 704 + be grouped into agent types.<br> 705 + <br>From the Obtain TAF data example given above each step must be 706 + considered in regards to what data it would require access to. In this 707 + example, only the final step of the scenario requires any data access 708 + as it will be required to write to a forecast data store of some 709 + description. In much the same way as assigning a role to a step before, 710 + we can assign a datastore to a step. By clicking Edit with the step 711 + selected we are able to edit the data which is written to by the step. 712 + However as we are yet to define any datastores, we will enter an 713 + appropriate name to create a new datastore. This datastore will then be 714 + propogated down to lower level of the design.<br><br><img src="fig48.jpg" style="width: 267px; height: 184px;" alt="CreateDataStore"><br><span style="font-style: italic;">Figure 48: Creating a data store.</span><br><br><span style="font-style: italic;"><span style="font-weight: bold;">Exercise: Add in the roles and data stores for each of the other Scenarios you have identified in the Scenario Diagram.</span></span><br><br><h2 class="h1"><a name="architectural_design"></a>Architectural Design</h2>The purpose of the Architectural Design phase is to do the following:<br>&nbsp;&nbsp;&nbsp; - group roles int o agents (using the Agent Role Grouping diagram)<br>&nbsp;&nbsp;&nbsp; - introduce and develop agent interactions (using the protocol diagram and system overview diagram)<br>&nbsp;&nbsp;&nbsp; - specify the details of the data stores in data descriptors<span style="font-weight: bold;"><br><br></span><h3><a name="agentrole_grouping"></a>Determining the agent types 715 + <span class="backtotop"><a href="#top">back to top</a></span></h3> 716 + 717 + <span style="font-weight: bold;"></span>It 718 + is now necessary to consider the different agent types which will be 719 + utilised by the system and assign roles to them. There are several things to consider before 720 + deciding on agent types and role grouping:<span style="font-weight: bold;"><br> 721 + </span> 722 + <div style="margin-left: 40px;"><span style="font-weight: bold;"></span><br> 723 + <span style="font-weight: bold;">Data coupling</span><br> 724 + <div style="margin-left: 40px;">While it is certainly 725 + possible to share data between agent types it can make the system more 726 + complex than necessary. Wherever possible, roles which use the same 727 + data stores should be allocated to the same agent type.</div> 728 + <br> 729 + <span style="font-weight: bold;">Coherence</span><br> 730 + <div style="margin-left: 40px;">It is a design decision how many agent 731 + types should be created. However the roles within an agent type should 732 + be related to each other, such that you can give a simple name to the 733 + agent that includes all the roles. The system is usually simpler if you 734 + do combine roles where it is possible, rather than having each role be 735 + an agent. (Agents can later be split into modules, called Capabilities, 736 + many of which may map back to roles).</div><br><span style="font-weight: bold;">Cardinality</span><br> 737 + <div style="margin-left: 40px;">Sometimes there will be many instances 738 + of a role needed, and sometimes only one. E.g. there would be only one 739 + instance of the role "Create Forecast" but there may be multiple 740 + instances of the role "Obtain AWS data" or "Obtain TAF data" as each 741 + instance, one per airport, will receive its own set of data.Roles 742 + requiring different cardinality should be put into different agents.</div> 743 + <span style="font-weight: bold;"></span><span style="font-weight: bold;"></span><br> 744 + <span style="font-weight: bold;"></span></div> 745 + <span style="font-weight: bold;"><br> 746 + </span>With these considerations in mind, the following agent 747 + types were decided upon:<span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"><br> 748 + </span></span></span> 749 + <div style="margin-left: 40px;"><span style="font-weight: bold;"><a name="airport_agent"></a><span class="h3">Airport agent</span><br> 750 + <span class="backtotop"><a href="#top">back to top</a></span> 751 + </span>There will be one Airport Agent per airport. It will 752 + handle the updating of beliefs and all logic relating to the detection 753 + of alerts<span style="font-weight: bold;"><br> 754 + </span>Roles:<br> 755 + </div> 756 + <div style="margin-left: 40px;"> 757 + <div style="margin-left: 40px;">-Obtain AWS Data<br> 758 + -Obtain TAF Data<br> 759 + -Add Subscription<br> 760 + -Check for High wind situation<br> 761 + -Check for Change in Immediate Forecast<br> 762 + -Check for Forecast Discrepancy<br> 763 + -Create Warning<br> 764 + </div> 765 + <br> 766 + <span class="h3" style="font-weight: bold;"><a name="gui_agent"></a>GUI agent</span> 767 + <span class="backtotop"><a href="#top">back to top</a></span><br> 768 + There will be one GUI Agent per user. It will handle all interactions 769 + with the user including the handling of user subscriptions and 770 + displaying of warnings.<br> 771 + Roles:<br> 772 + <div style="margin-left: 40px;">-Subscribe to Airport<br> 773 + -Display warnings</div> 774 + <br> 775 + <span class="h3" style="font-weight: bold;"><a name="forecaster_agent"></a>Forecaster agent</span> 776 + <span class="backtotop"><a href="#top">back to top</a></span><br> 777 + There will be one Forecaster agent in the system. It will handle the 778 + incoming forecasts, split them and send them to the appropriate Airport 779 + Agents.</div> 780 + <div style="margin-left: 40px;"><span style="font-weight: bold;"><span style="font-weight: bold;"></span><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span></span>Roles:<br> 781 + <div style="margin-left: 40px;">-Create Forecast</div> 782 + </div> 783 + <span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"><br></span></span></span></span>Each 784 + of the roles defined in the System Roles diagram will already have 785 + propagated down to the the Agent-Role Grouping diagram. To create a new 786 + Agent type, click on the Agent tool and then click in the Agent-Role 787 + Grouping diagram. Using the edge tool connect each new agent type with 788 + the appropriate roles as determined above to produce the following 789 + diagram.<span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"><br> 790 + <img src="fig23.jpg" style="width: 365px; height: 395px;" alt=""><br> 791 + </span></span></span></span><span style="font-style: italic;">Figure 23: Agent-role grouping 792 + diagram</span><br><br>For 793 + each of the agents it is appropriate to fill in all of the relevant 794 + fields in the agent descriptor. An example of this is shown below:<br><br><img src="fig43.JPG" style="width: 800px; height: 1200px;" alt="Agent Descriptor"><br>Figure 43: Agent descriptor diagram.<br> 795 + <br><p> 796 + Neither the Agent Acquaintance diagram or the Data Coupling diagram are 797 + essential to the design process. They can help with considering 798 + different combinations of agents and roles and can allow you to see how 799 + the system will interact and consider the coherence and flexibility of 800 + the system. The Agent Acquaintance diagram is not editable and only 801 + reflects relationships described elsewhere. While the Data Coupling 802 + diagram allows you to link roles to data stores, this is better done 803 + when describing the scenarios.<br> 804 + </p> 805 + <p class="h2"><a name="system_overview"></a>Agent Interaction</p> 806 + <span class="backtotop"><a href="#top">back to top</a></span>The interaction between agents and between agents and the environment is described using the <br>&nbsp;With the 807 + agent types defined, we must now consider how they will interact with 808 + each other and with the environment. PDT will automatically link the 809 + agents with their interactions with the environment so the actions and 810 + percepts should already be accurate. It is therefore only necessary to 811 + define the interactions between the agents and this can be done using 812 + either individual messages or through protocols. Protocols group 813 + messages in a single conversation together and show the legal sequence 814 + of message exchanges. When there are several messages relating to the 815 + same conversation, it is better to use a protocol and when there is 816 + only a single message which is sent from one agent to another this can 817 + simply be put on the diagram on its own.<br> 818 + <br> 819 + Protocols can be created by clicking on the protocol icon and adding it 820 + into the diagram. Doubling clicking on the protocol will open an 821 + editing window in which the protocol can be described using AUML2. AUML2 is described in this paper: Michael Winikoff. 822 + <i>Defining syntax and providing tool support for Agent UML using a textual 823 + notation</i>, 824 + International Journal Agent-Oriented Software Engineering, Vol. 1, No. 825 + 2, pp.123-144, 2007. To specify a protocol, enter text into the text 826 + area and then click "Save". Clicking on the Diagram tab will then show 827 + the protocol in a graphical format. The MDP panel is obsolete and can 828 + be ignored.<br> 829 + <br> 830 + There are three interactions which need to take place between agents. 831 + For each of them, it is necessary to identify the actors and agents 832 + involved and each of the messages which will need to be sent. This 833 + information can then be used to create the protocol diagram.<br> 834 + <br> 835 + <span class="h3" style="font-weight: bold;"><a name="data_retrival"></a>Data Retrieval</span><br> 836 + Both the airport agent and the forecaster agent need to subscribe to 837 + the appropriate data sources.<br> 838 + When the forecast data arrives at the forecaster agent, it then needs 839 + to be sent to the individual agents.<br> 840 + There is the optional ability to send a request for AWS data at any 841 + time.<br> 842 + Agents:<br> 843 + &nbsp;&nbsp;&nbsp; -Airport agent<br> 844 + &nbsp;&nbsp;&nbsp; -Forecaster agent<br> 845 + Actors:<br> 846 + &nbsp;&nbsp;&nbsp; -Airport sensors<br> 847 + &nbsp;&nbsp;&nbsp; -Forecaster actor<br> 848 + Actions:<br> 849 + &nbsp;&nbsp;&nbsp; -AWS subscription - sent from Airport 850 + Agent to Airport sensor<br> 851 + &nbsp;&nbsp;&nbsp; -TAF subscription - sent from Forecaster 852 + agent to Forecaster<br> 853 + &nbsp;&nbsp;&nbsp; -AWS data request - sent from Airport 854 + Agent to Airport sensor<br> 855 + Percepts:<br> 856 + &nbsp;&nbsp;&nbsp; -AWS data - sent from Airport sensor to 857 + Airport agent<br> 858 + &nbsp;&nbsp;&nbsp; -TAF data - sent from Forecaster to 859 + Forecaster agent<br> 860 + Messages:<br> 861 + &nbsp;&nbsp;&nbsp; -Forecast - sent from Forecaster agent 862 + to Airport agent<br> 863 + <br> 864 + From these elements we can produce the following AUML2:<br> 865 + 866 + <div style="font-style: italic;"> 867 + <div style="margin-left: 80px;">start Data retrieval<br> 868 + actor A Airport Sensor<br> 869 + agent B AirportAgent<br> 870 + actor C Forecaster<br> 871 + agent D ForecasterAgent<br> 872 + action B A subscribeAWSSourceAgent<br> 873 + action D C subscribeTAFSourceAgent<br> 874 + box loop<br> 875 + box opt<br> 876 + action B A AWSRequest<br> 877 + end opt<br> 878 + percept A B AWS DataE<br> 879 + percept C D TAF dataE<br> 880 + message D B ForecastE<br> 881 + end loop<br> 882 + finish<br> 883 + <br> 884 + </div> 885 + <br> 886 + Which will result in the following protocol diagram:<br> 887 + <br> 888 + <img src="fig24.jpg" style="width: 562px; height: 318px;" alt=""><br> 889 + Figure 24: Data retrieval protocol diagram<br> 890 + <br> 891 + </div> 892 + <span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-style: italic;"><span style="font-style: italic; font-weight: bold;"></span></span></span></span></span></span><span style="font-style: italic;"></span><br style="font-weight: bold;"> 893 + <span style="font-weight: bold;"><span class="h3"><a name="subscriptions_protocol"></a>Subscriptions protocol</span><br> 894 + <span class="backtotop"><a href="#top">back to top</a></span> 895 + </span>The user actor will click on the GUI to subscribe to an 896 + airport<br> 897 + This subscription will get passed on to the appropriate airport agent<br> 898 + <br> 899 + Actors:<br> 900 + &nbsp;&nbsp;&nbsp; -User actor<br> 901 + Agents:<br> 902 + &nbsp;&nbsp;&nbsp; -Airport agent<br> 903 + &nbsp;&nbsp;&nbsp; -GUI agent<br> 904 + Percepts:<br> 905 + &nbsp;&nbsp;&nbsp; -Subscription - sent from User actor to 906 + GUI agent<br> 907 + Messages:<br> 908 + &nbsp;&nbsp;&nbsp; -Subscription - sent from GUI agent to 909 + airport agent<br> 910 + <br> 911 + From these elements we can produce the following AUML2:<br> 912 + <div style="margin-left: 80px;">start SubscriptionsProtocol<br> 913 + actor A User<br> 914 + agent B GUIAgent<br> 915 + agent C AirportAgent<br> 916 + percept A B Subscription from User<br> 917 + message B C SubscriptionE</div> 918 + <br> 919 + Which will produce the following protocol diagram:<br> 920 + <img src="fig25.jpg" style="width: 345px; height: 103px;" alt=""><br> 921 + <span style="font-style: italic;">Figure 25: Subscription 922 + protocol</span><br> 923 + <br> 924 + <span style="font-weight: bold;"><span class="h3"><a name="warnings_protocol"></a>Warnings Protocol</span><br> 925 + <span class="backtotop"><a href="#top">back to top</a></span> 926 + </span>A warning will be created by an Airport Agent and sent to 927 + the GUI agent<br> 928 + The warning will then be displayed on the screen to the user.<br> 929 + <br> 930 + Actors:<br> 931 + &nbsp;&nbsp;&nbsp; -User<br> 932 + Agents:<br> 933 + &nbsp;&nbsp;&nbsp; -GUI agent<br> 934 + &nbsp;&nbsp;&nbsp; -Airport agent<br> 935 + Actions:<br> 936 + &nbsp;&nbsp;&nbsp; -Warning<br> 937 + Messages:<br> 938 + &nbsp;&nbsp;&nbsp; -Warning<br> 939 + <br> 940 + From these elements we can produce the following AUML2:<br> 941 + <div style="margin-left: 80px;">start Warnings<br> 942 + actor A User<br> 943 + agent D GUIAgent<br> 944 + agent E AirportAgent<br> 945 + message E D WarningE<br> 946 + action D A Show Warning<br> 947 + </div> 948 + <br> 949 + Which will produce the following protocol diagram:<br> 950 + <img src="fig26.jpg" style="width: 345px; height: 103px;" alt=""><br> 951 + <span style="font-style: italic;">Figure 26: Warnings 952 + protocol.</span><br> 953 + <br><h3>Message Descriptors</h3>For each of the messages we have 954 + created, it is important to fill in the descriptors with as much detail 955 + as possible. This allows each agent to be implemented separately, using 956 + the protocol and message specifications to ensure they will work 957 + together correctly. This means it is important to describe the messages 958 + right down to the fields which they contain.<br><br><img style="width: 766px; height: 388px;" alt="Message Descriptor" src="fig50.JPG"><br>Figure 50: Message descriptor for ForecastE.<br><br><span style="font-style: italic;">Note the above figure does not show the all the information contained under "Carried Information". The complete text is:<br>rmit.cs.aopd.datastructures.WeatherDataRecord[]<br>where WeatherDataRecord contains:<br>&nbsp;&nbsp;&nbsp; float windStrength;<br>&nbsp;&nbsp;&nbsp; float temperature;<br>&nbsp;&nbsp;&nbsp; float rainfall;<br>&nbsp;&nbsp;&nbsp; boolean fog;<br>&nbsp;&nbsp;&nbsp; Date dateAndTime;</span><br><h3>Shared Data</h3>At 959 + this point it is also necessary to describe in more detail any of the 960 + data types which will be shared amongst agents. Like with the message 961 + descriptors, this provides a common specification so that the agents 962 + using the data type can be implemented separately. More detailed 963 + descriptions of non-shared data types can be completed at the Detailed 964 + Design stage. 965 + <h3 class="h1"><a name="detailed_design"></a>Detailed Design</h3>In 966 + detailed design we take one agent at a time and specify the internals 967 + of the agent in a manner that is consistent with the roles the agent 968 + has been assigned, and the interface that has been specified with both 969 + the environment and other agents.<br>Sometimes, as the detailed design 970 + is developed, it becomes necessary to modify aspects of the 971 + architectural design. This should be done as needed, in order to 972 + maintain consistency of the overall system design.<br><br>The tasks in detailed design for each agent are:<br>1) create the agent overview<br>2) create the overview of any capabilities<br>3) develop the plan descriptors<br>4) develop the event descriptors<br>5) develop the details of any data<br><br>There is substantial iteration between all of these steps within a single agent.<br><br>The 973 + agent overview diagram is the top level view of the agent internals, 974 + and inherits the interface items (data, percepts, actions and messages) 975 + based on the architectural design. Capabilities and plans are then 976 + added into the diagram in a manner similar to the other diagrams. All 977 + inherited entities must be connected to some capability or plan. New 978 + messages may be created as connections between capabilities or plans. 979 + New data that is internal to the agent, but shared amongst multiple 980 + capabilities/plans can also be added in this diagram.<br><br>Each diagram should be kept relatively simple and easy to understand, using hierarchical layers to develop details.<br><br>We will look now at the details for each agent.<br><br style="font-weight: bold;"><span style="font-weight: bold;">Airport Agent<br><br></span><div style="margin-left: 40px;"><br>The roles associated with the Airport agent are shown below:<br> 981 + 982 + 983 + -Obtain AWS Data<br> 984 + -Obtain TAF Data<br> 985 + -Add Subscription<br> 986 + -Check for High wind situation<br> 987 + -Check for Change in Immediate Forecast<br> 988 + -Check for Forecast Discrepancy<br> 989 + -Create Warning<br><br>From 990 + the System Roles diagram we can identify the goals, actions and 991 + percepts associated with each of the roles which the agent is assigned. 992 + It is envisaged that there 993 + should be some correlation between goals and plans, percepts and 994 + incoming messages, and actions and outgoing messages. This is 995 + not&nbsp;strictly enforced, and plans can achieve more than one goal 996 + and vise versa, more than one plan can be used to achieve the one goal. 997 + The percepts, incoming 998 + messages and actions are automatically added to the diagram as shown 999 + below:<br><br><img src="fig49.JPG" style="width: 537px; height: 200px;" alt="Empty Airport Agent"><br>Fig 49: Automatically propogated entities into the airport agent.<br><br>Each 1000 + of these entities should then be connected to either a plan, or a 1001 + modular collection of plans - a capability. In our example, rather than 1002 + performing the subscribeAWSSourceAgent action from within a plan, we 1003 + will perform it directly at the agent initialisation. Thus in this 1004 + specific instance that action will remain unconnected however that 1005 + should be considered uncommon.<br>For each role associated with the 1006 + agent, a good guide is to consider whether the goals associated with it 1007 + can be achieved using a single plan. If this is the case, then the 1008 + single plan can be inserted into the top level overview diagram. If 1009 + not, the plans should probably be combined into a capability which is 1010 + inserted at the top level diagram and contains all the plans and events 1011 + necessary to achieve the role's goals. <br><br>You can get a rough 1012 + idea of this by looking at the goals associated with the role and how 1013 + complicated it needs to be. Of course this may change as you start to 1014 + create the plans but is a good starting point.<br><br><table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td style="font-weight: bold;">Role</td><td style="font-weight: bold;">Goals</td><td style="font-weight: bold;">Plan/Capability?</td></tr><tr><td>Obtain AWS Data</td><td>Update AWS beliefs, Receive AWS data, Request AWS data</td><td>Capability</td></tr><tr><td>Obtain TAF Data</td><td>Update TAF beliefs, Receive TAF data</td><td>Plan</td></tr><tr><td>Add Subscription</td><td>Update Subscriptions Beliefs</td><td>Plan</td></tr><tr><td>Create Warning</td><td>Check Subscribers</td><td>Plan</td></tr><tr><td>Check for High wind Situation</td><td>Check high wind, Check really unexpected, increasing wind, Check high, unexpected, increasing wind</td><td>Capability</td></tr><tr><td>Check for Forecast Discrepancy</td><td>Check wind, Check fog</td><td>Capability</td></tr><tr><td>Check for change in immediate forecast</td><td>Check high wind change, Check high rain, Check temp below 0, Check fog change</td><td>Capability</td></tr></tbody></table><br><br><span style="font-weight: bold;">Obtain AWS Data<br></span><div style="margin-left: 40px;">For each of the plans we should consider the events which will trigger 1015 + the plans execution and any events or messages it will post or send. 1016 + The data stores which will be read from or written to should also be 1017 + identified.</div><div style="margin-left: 40px;"><table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td><span style="font-weight: bold;">Goals</span></td><td><span style="font-weight: bold;">Plans</span></td><td><span style="font-weight: bold;">Actions</span></td><td><span style="font-weight: bold;">Percepts</span></td><td style="font-weight: bold;">Internal Events</td><td><span style="font-weight: bold;">Data</span></td></tr><tr><td>Update&nbsp;AWS beliefs, Receive AWS data</td><td>UpdateAWSP</td><td></td><td>AWS Data</td><td></td><td>AWSReadings</td></tr><tr><td>Request AWS data</td><td>RequestAWSP</td><td>Request Data Action</td><td></td><td>AWS Data Needed</td><td></td></tr></tbody></table><br>A 1018 + decision has been made to combine the Update AWS beliefs and Receive 1019 + AWS data as it can logically be achieved by the same plan. <br>From this we can produce the following detailed design:<br><br><img src="fig28.JPG" style="width: 253px; height: 249px;" alt="Figure 28"><br>Figure 28: Obtain AWS data detailed design<br></div><span style="font-weight: bold;"><br>Obtain TAF data<br><br></span><div style="margin-left: 40px;">As above we can produce the following table based on information provided in the architectural design:<br><table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td><span style="font-weight: bold;">Goals</span></td><td><span style="font-weight: bold;">Plans</span></td><td><span style="font-weight: bold;">Actions</span></td><td><span style="font-weight: bold;">Percepts</span></td><td style="font-weight: bold;">Internal Events</td><td><span style="font-weight: bold;">Data</span></td></tr><tr><td>Update TAF Beliefs, Receive TAF data</td><td>UpdateTAFP</td><td>N/A</td><td>N/A</td><td>ForecastE</td><td>forecasts</td></tr></tbody></table><br>As 1020 + was done with the AWS data, we can combine the receiving and updating 1021 + goals into one plan. This produces the following detailed design:<br><img src="fig29.JPG" style="width: 104px; height: 175px;" alt="Figure 29"><br>Figure 29: Obtain TAF data detailed design</div><br style="font-weight: bold;"><span style="font-weight: bold;">Add Subscription<br><br></span><div style="margin-left: 40px;">This 1022 + role relates to subscribing a user to this airport agent so that any 1023 + warnings created at the airport are sent to the user. A message will be 1024 + sent from the GUI agent associated with the user, so the airport agent 1025 + must simply write this to a datastore. Thus we can identify the 1026 + following information:<br><table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td><span style="font-weight: bold;">Goals</span></td><td><span style="font-weight: bold;">Plans</span></td><td><span style="font-weight: bold;">Actions</span></td><td><span style="font-weight: bold;">Percepts</span></td><td style="font-weight: bold;">Internal Events</td><td><span style="font-weight: bold;">Data</span></td></tr><tr><td>Update Subscriptions Beliefs</td><td>AddSubscriptionP</td><td>N/A</td><td>N/A</td><td>SubscriptionE</td><td>subscriptions</td></tr></tbody></table><br>and the following detailed design:<br><br><img src="fig30.JPG" style="width: 121px; height: 175px;" alt="Figure 30"><br>Figure 30: Add Subscription detailed design</div><br style="font-weight: bold;"><span style="font-weight: bold;">Create warning</span><br>At 1027 + this point it is also necessary to consider the Create Warning role as 1028 + it has a close relationship with each of the "checking" roles. There is 1029 + the potential to combine the Create Warning role with each of these 1030 + roles and we must consider the advantages to doing so.<br><br>The 1031 + Create Warning role consists of two reasonably seperate tasks. First, a 1032 + warning must be created with the relevant information included. Second, 1033 + the subscriptions datastore must be checked and the warning sent to the 1034 + relevant agents. Notice that there is a strong link between the first 1035 + task and each of the "checking roles", wherein an alertable situation 1036 + must be identified, and then a warning based on that information must 1037 + be created. From here there are two possible design options:<br><br>a) Keep create warning as a distinct role seperate from each of the checking roles:<br><img src="fig31.jpg" style="width: 141px; height: 277px;" alt="Figure 31"><br>Figure 31: Design a.<br><br>b) Combine the "Checking" roles with the Create Warning role:<br><img src="fig32.jpg" style="width: 161px; height: 175px;" alt="Figure 32"><br>Figure 32: Design b<br><br>In 1038 + design b, we have combined the checking for high rain with the creating 1039 + of a relevant warning into one plan. This makes the design less complex 1040 + and logically makes sense so we will go with this design,<br><br>The Create Warning Role now only consists of the following:<br><table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td><span style="font-weight: bold;">Goals</span></td><td><span style="font-weight: bold;">Plans</span></td><td><span style="font-weight: bold;">Actions</span></td><td><span style="font-weight: bold;">Percepts</span></td><td style="font-weight: bold;">Internal Events</td><td><span style="font-weight: bold;">Data</span></td></tr><tr><td>Check Subscribers</td><td>PostWarningP</td><td>N/A</td><td>N/A</td><td>NewWarningE, WarningE</td><td>subscriptions</td></tr></tbody></table><br>And the design is simply:<br><img src="fig33.jpg" style="width: 210px; height: 127px;" alt="Figure 33"><br>Figure 33: Create Role detailed design</div><span style="font-weight: bold;"><br>Check for high wind situation<br><br></span><div style="margin-left: 40px;">As 1041 + described in the Create Warning Role detailed design above, we are 1042 + integrating the creation of warnings into the same plan as the one 1043 + which will do the checking.<br><br><table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td><span style="font-weight: bold;">Goals</span></td><td><span style="font-weight: bold;">Plans</span></td><td><span style="font-weight: bold;">Actions</span></td><td><span style="font-weight: bold;">Percepts</span></td><td style="font-weight: bold;">Internal Events</td><td><span style="font-weight: bold;">Data</span></td></tr><tr><td>Check high wind, Create warning</td><td>ReportReallyHighWindP</td><td>N/A</td><td>N/A</td><td>NewDataE, NewWarningE</td><td>AWS_readings, forecasts</td></tr><tr><td>Check really unexpected, increasing wind, Create warning</td><td>ReportReallyUnexpectedIncreasingWindP</td><td>N/A</td><td>N/A</td><td>NewDataE, NewWarningE</td><td>AWS_readings, forecasts</td></tr><tr><td>Check high, unexpected, increasing wind, Create warning</td><td>ReportHighUnexpectedIncreasingWindP</td><td>N/A</td><td>N/A</td><td>NewDataE, NewWarningE</td><td>AWS_readings, forecasts</td></tr></tbody></table><br>From this we can create the following detailed design:<br><img src="fig34.jpg" style="width: 620px; height: 358px;" alt="Figure34"><br>Figure 34: Check High wind situation detailed design.</div> 1044 + <br><br><span style="font-weight: bold;">Check for Change in Immediate Forecast</span><br style="font-weight: bold;"><br><div style="margin-left: 40px;">Similar to checking for high wind, the Check For Change in Immediate Forecast role can be broken down as follows:<br><br><table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td><span style="font-weight: bold;">Goals</span></td><td><span style="font-weight: bold;">Plans</span></td><td><span style="font-weight: bold;">Actions</span></td><td><span style="font-weight: bold;">Percepts</span></td><td style="font-weight: bold;">Internal Events</td><td><span style="font-weight: bold;">Data</span></td></tr><tr><td>Check high wind change, Create warning</td><td>ReportHighWindChangeP</td><td>N/A</td><td>N/A</td><td>NewDataE, NewWarningE</td><td>forecasts</td></tr><tr><td>Check fog change, Create warning</td><td>ReportFogChangeP</td><td>N/A</td><td>N/A</td><td>NewDataE, NewWarningE</td><td>forecasts</td></tr><tr><td>Check temp below zero change, Create warning</td><td>ReportTempBelowZeroChangeP</td><td>N/A</td><td>N/A</td><td>NewDataE, NewWarningE</td><td>forecasts</td></tr><tr><td>Check high rain change, Create warning</td><td>ReportHighRainChangeP</td><td>N/A</td><td>N/A</td><td>NewDataE, NewWarningE</td><td>forecasts</td></tr></tbody></table><br>Which can be used to create the following detailed design:<br><img src="fig35.jpg" style="width: 634px; height: 350px;" alt="Figure 35"><br>Figure 35: Check for change in Immediate Forecast detailed design<br></div><br style="font-weight: bold;"><span style="font-weight: bold;">Check for Forecast Discrepancy</span><br><br><div style="margin-left: 40px;">As with the other Checking roles, Check for Forecast Discrepancy can be broken down as follows:<br><table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td><span style="font-weight: bold;">Goals</span></td><td><span style="font-weight: bold;">Plans</span></td><td><span style="font-weight: bold;">Actions</span></td><td><span style="font-weight: bold;">Percepts</span></td><td style="font-weight: bold;">Internal Events</td><td><span style="font-weight: bold;">Data</span></td></tr><tr><td>Check Wind, Create warning</td><td>ReportWindDiscrepancyP</td><td>N/A</td><td>N/A</td><td>NewDataE, NewWarningE</td><td>forecasts, AWS_readings</td></tr><tr><td>Check Fog, Create warning</td><td>ReportFogDiscrepancyP</td><td>N/A</td><td>N/A</td><td>NewDataE, NewWarningE</td><td>forecasts, AWS_readings</td></tr><tr><td>Check Trends, Create warning</td><td>ReportTempBelowZeroChangeP</td><td>N/A</td><td>N/A</td><td>NewDataE, NewWarningE</td><td>forecasts, AWS_readings</td></tr></tbody></table><br><span style="font-style: italic;"><span style="font-weight: bold;">Exercise: Based on the information provided in the table above, create the detailed design for Check for forecast discrepancy.</span></span></div><br><span style="font-weight: bold;"><big>Capabilities</big><br><br></span></div><div style="margin-left: 80px;">Capabilities 1045 + are a set of related plans which achieve a common goal or common set of 1046 + goals. Their use helps to reduce the complexity of the design and 1047 + logically seperate processes into individual components. There are many 1048 + different ways to combine plans into capabilities and there is not 1049 + necessarily a right or wrong way. However a good guide to considering 1050 + whether a set of plans should be combined into a capability or not is 1051 + to ask the following questions:<br><div style="margin-left: 40px;">- Are the plans related and do they together achieve a higher level goal as identified in the Goal Overview diagram?<br>- Will putting the plans into a capability make the design simpler?<br></div><br>By asking these questions for the design so far, we can come up with the following capabilities for the airport agent design:<br><br><div style="margin-left: 40px;">-ObtainAWSdataCap<br>&nbsp;&nbsp;&nbsp; - This will include everything shown in the detailed design for Obtain AWS data<br>-RecogniseHighWindCap<br>&nbsp;&nbsp;&nbsp; - This will include everything shown in the detailed design for Check High Wind<br>-RecogniseImmediateChangeCap<br>&nbsp;&nbsp;&nbsp; - This will include everything shown in the detailed design for Check for Change in Immediate Forecast<br>-RecogniseForecastDiscrepancyCap<br>&nbsp;&nbsp;&nbsp; - This will include everything shown in the detailed design for Check for Forecast Discrepancy</div><br>Note 1052 + that we will not create a capability for Obtain TAF data, Add 1053 + Subscription or Create Warning as although these are satisfy the first 1054 + requirement of being a related set of plans that achieve a higher level 1055 + goal, they do not satisfy the second component. i.e. Putting them 1056 + together into a capability would not make the design any simpler.<br><br><span style="font-style: italic;"><span style="font-weight: bold;">Exercise: 1057 + Create each of the capabilities described above, placing the relevant 1058 + plans and events inside. You should be able to produce the following 1059 + complete detailed design for the Airport Agent:</span></span><br><br><img src="fig36.jpg" style="width: 656px; height: 407px;" alt="Figure36"><br>Figure 36: Complete detailed design for the Airport agent, with capabilities included.<br><br></div><div style="margin-left: 40px;"><br><span style="font-weight: bold;">GUI agent</span><br><br>We 1060 + will now create the detailed design for the GUI agent. From the 1061 + Agent-Role grouping diagram, we can identify two roles that the GUI 1062 + agent is expected to achieve:<br><br><div style="margin-left: 40px;">- Subscribe to Airport<br>- Display warning</div><br><span style="font-weight: bold;">Subscribe to airport</span><br><div style="margin-left: 40px;">This 1063 + role requires the GUI agent to accept an incoming subscription from the 1064 + user, create a subscription in an appropriate format, and send it to 1065 + the relevant airport. Thus we have the following table:<br><br></div><table style="text-align: left; width: 100%; margin-left: 40px;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td><span style="font-weight: bold;">Goals</span></td><td><span style="font-weight: bold;">Plans</span></td><td><span style="font-weight: bold;">Actions</span></td><td><span style="font-weight: bold;">Percepts</span></td><td style="font-weight: bold;">Internal Events</td><td><span style="font-weight: bold;">Data</span></td></tr><tr><td>Make Subscription<br></td><td>MakeSubscriptionP</td><td>N/A</td><td>Subscription From User</td><td>SubscriptionE<br></td><td>N/A<br></td></tr></tbody></table><div style="margin-left: 40px;"><br>From this we can create the following detailed design:<br><br><img src="fig37.jpg" style="width: 199px; height: 206px;" alt="Figure37"><br>Figure 37: Subscribe to Airport detailed design.<br></div><br><span style="font-weight: bold;">Display Warning</span><br><div style="margin-left: 40px;">This role requires the GUI agent to receive a warning from an airport agent and display it to the user. <br><br></div><table style="text-align: left; height: 60px; margin-left: 80px; width: 1083px;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td><span style="font-weight: bold;">Goals</span></td><td><span style="font-weight: bold;">Plans</span></td><td style="width: 140px;"><span style="font-weight: bold;">Actions</span></td><td style="width: 143px;"><span style="font-weight: bold;">Percepts</span></td><td style="font-weight: bold; width: 137px;">Internal Events</td><td style="width: 103px;"><span style="font-weight: bold;">Data</span></td></tr><tr><td>Display Warning<br></td><td>AlertUserP</td><td style="width: 140px;">Show Warning</td><td style="width: 143px;">N/A</td><td style="width: 137px;">WarningE<br></td><td style="width: 103px;">N/A<br></td></tr></tbody></table><div style="margin-left: 40px;"><br>From this we can create the following detailed design:<br><img src="fig38.jpg" style="width: 121px; height: 196px;" alt="Figure38"><br>Figure 38: Display Warning detailed design.<br></div><br><span style="font-weight: bold;">Capabilities<br></span><div style="margin-left: 40px;"><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span></span>The 1066 + detailed design of the GUI agent is already very simple and the use of 1067 + capabilities would provide no extra value. Therefore we have chosen not 1068 + to use any capabilities and instead keep the detailed design as below:<br><br><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span><img src="Fig39.jpg" style="width: 323px; height: 213px;" alt="Fig39"></span><br><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span>Figure 39: Complete detailed design for the GUI agent<span style="font-weight: bold;"><span style="font-weight: bold;"></span></span><br><span style="font-weight: bold;"></span></div><br><br style="font-weight: bold;"><span style="font-weight: bold;">Forecaster Agent</span><br><div style="margin-left: 40px;">From 1069 + the Agent-Role groupings diagram, we can see that the only role 1070 + associated with the Forecaster Agent is Create Forecast. This role 1071 + entails receiving a set of forecasts from a Forecaster, splitting them 1072 + into individual airports and sending them.<br><br><table style="text-align: left; height: 60px; margin-left: 0px; width: 1042px;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td style="width: 212px;"><span style="font-weight: bold;">Goals</span></td><td style="width: 186px;"><span style="font-weight: bold;">Plans</span></td><td style="width: 161px;"><span style="font-weight: bold;">Actions</span></td><td style="width: 135px;"><span style="font-weight: bold;">Percepts</span></td><td style="font-weight: bold; width: 151px;">Internal Events</td><td style="width: 147px;"><span style="font-weight: bold;">Data</span></td></tr><tr><td style="width: 212px;">Send to Airports<br></td><td style="width: 186px;">SendForecastsP</td><td style="width: 161px;">N/A</td><td style="width: 135px;">TAF data</td><td style="width: 151px;">ForecastE<br></td><td style="width: 147px;">N/A<br></td></tr></tbody></table><br>Clearly, 1073 + this detailed design is simple enough and using capabilities would not 1074 + achieve anything. The complete detailed design is as follows:<br><img src="fig40.jpg" style="width: 117px; height: 181px;" alt="Fig40"><br>Figure 40: Complete detailed design for Forecaster agent.<br><br></div><br>For 1075 + each plan we must fill in the relevant fields in the plan descriptor. 1076 + This should be as detailed as possible so that an implementor has all 1077 + the necessary information to implement the plan. A detailed example is 1078 + given below:<br><img src="fig44.jpg" style="width: 715px; height: 970px;" alt="fig44"><br><br>This concludes the complete design for the system.<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>dafsdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div></body></html>
ref/pd_tutorial/up_arrow_blue.gif

This is a binary file and will not be displayed.