ordering.dot 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. /* example using ordering, values in or out */
  2. digraph sw_blackboard {
  3. center=true;
  4. graph [ label="Blackboard Architecture - Information Flow",
  5. fontsize=16, fontname="Helvetica-Bold" ];
  6. ordering=out;
  7. ranksep=0.75;
  8. decorate=true;
  9. node [shape=box];
  10. size="8,8";
  11. /* SIDE BAR */
  12. {
  13. ordering=out;
  14. node [shape=plaintext];
  15. l1->l2 [ dir=both ]
  16. l2->l3 [ dir=both ]
  17. l3->l7 [ dir=both ]
  18. l7->l9 [ color=white, dir=none ]
  19. l9->l10 [ color=white, dir=none ]
  20. l1 [ label="Information\nRepositories" ];
  21. l2 [ label="Local Agents" ];
  22. l3 [ label="Converters" ];
  23. l7 [ label="Blackboard" ];
  24. l9 [ fontname="Times-Italic", label="Meta-Queries\n(internal)" ];
  25. l10 [ fontname="Times-Italic", label="Queries" ];
  26. }
  27. /* RANKINGS */
  28. // { rank=same;
  29. // l1; web; sql; rbb; files; kernel; human; mem;
  30. // }
  31. { rank=same;
  32. l2; weba -> rbba -> pure -> otha [ style=invis ];
  33. }
  34. { rank=same;
  35. l3; p; g;
  36. }
  37. { rank=same;
  38. l7; db; q;
  39. }
  40. { rank=same;
  41. l9; x1; x2
  42. }
  43. { rank=same;
  44. l10; x3; x4
  45. }
  46. /* NODES */
  47. /*
  48. subgraph cluster1 {
  49. style=filled;
  50. label="HTTP Agent"
  51. color=white;
  52. a1;
  53. } */
  54. /* info1 [ shape=plaintext, label="Web Pages" ]
  55. a1 [ label="Objects In\nMemory" ]
  56. info2 [ label="Objects In\nMemory" ]
  57. info3 [ shape=plaintext, label="SQL\nDatabases" ]
  58. info4 [ shape=plaintext, label="Other\nBlackboard\nServers" ]
  59. info5 [ shape=plaintext, label="Human User\nInterface Objects" ] */
  60. web [ label="Web Servers" ];
  61. weba [ label="HTTP Agent" ];
  62. rbb [ label="Blackboard\nServers" ];
  63. rbba [ label="Blackboard\nRelay" ];
  64. oth [ label="SQL Databases, local files, local kernel,\nobjects in memory, human users, etc." ];
  65. otha [ label="Other" ];
  66. pure [ label="Pure Local" ];
  67. p [ label="\nParsers\n(extract semantics into assertions)\n\n" ]
  68. g [ label="\nGenerators\n(express asserted\nknowledge in appropriate syntax)\n\n" ]
  69. db [ label="\nTuple Database\nwith Triggers\n\n",
  70. fontname="Times-Bold", URL="#\N" ]
  71. q [ label="\nQuery Loopback Manager\n\n" ]
  72. {
  73. node [ fontname="Times-Italic", ];
  74. x1 [ fontname="Times-Italic", shape=plaintext,
  75. label="Look for Tuples\nDescribing\nReified Queries" ]
  76. x2 [ fontname="Times-Italic", shape=plaintext,
  77. label="Tuples Describing\nReified Queries" ]
  78. x3 [ fontname="Times-Italic", shape=plaintext,
  79. label="Look for Matches to Reified Queries" ]
  80. x4 [ fontname="Times-Italic", shape=plaintext,
  81. label="Tuples Matching Reified Queries" ]
  82. }
  83. /* EDGES */
  84. web -> weba [ dir=both, color=blue, style=bold ];
  85. g -> weba -> p [ color=blue, style=bold ];
  86. /*
  87. sql -> otha [ dir=both ];
  88. files -> otha [ dir=both ];
  89. kernel -> otha [ dir=both ];
  90. human -> otha [ dir=both ];
  91. mem -> otha [ dir=both ];
  92. */
  93. oth -> otha [ dir=both ];
  94. g -> otha -> p;
  95. rbb -> rbba [ dir=both ];
  96. g -> rbba -> p;
  97. g -> pure -> p;
  98. /*
  99. info2 -> p [ color=blue, style=bold ] ;
  100. info3 -> p;
  101. info4 -> p;
  102. info5 -> p;
  103. */
  104. p -> db [ style=bold, color=blue,
  105. label=" assertion tuples\l (including reified queries)\l" ]
  106. q -> g [ style=bold, color=blue,
  107. label=" assertion tuples (including\ltuples matching reified queries)\l" ]
  108. /*
  109. q -> db [ style=dotted, label="Look for Reified Queries" ]
  110. db -> q [ style=dotted, label="Reified Query Data" ]
  111. q -> db [ label="Look for Matches to Reified Queries" ]
  112. db -> q [ label="Reified Query Match Data" ]
  113. */
  114. q ->x1-> db [ style=dotted ]
  115. db ->x2-> q [ style=dotted ]
  116. q ->x3-> db
  117. db ->x4-> q [ style=bold, color=blue ]
  118. /*
  119. g -> a1;
  120. g -> info2 [ color=blue, style=bold ] ;
  121. g -> info3;
  122. g -> info4;
  123. g -> info5;
  124. */
  125. }