/* Copyright 2008 Google Inc.

 This work is licensed under a Creative Commons Attribution 2.5 License.
 For information, see:
   http://creativecommons.org/licenses/by/2.5/

 For the actual license text, see:
   http://creativecommons.org/licenses/by/2.5/legalcode
 */

digraph WorkModels {
  /* 11 inches x 96 DPI is 1056 pixels wide */
  size="11,11";
  edge [fontsize=10.0 len=1.5 arrowhead=none labeldistance=2.3]
  node [shape=plaintext];
  root = Work;
  rankdir = "TB";

  /* invisible "level" graph to enable assigned of levels to groups of nodes */
  8 [style=invis];
  7 [style=invis];
  6 [style=invis];
  5 [style=invis];
  4 [style=invis];
  3 [style=invis];
  2 [style=invis];

  8 -> 7 [style=invis];
  7 -> 6 [style=invis];
  6 -> 5 [style=invis];
  5 -> 4 [style=invis];
  4 -> 3 [style=invis];
  3 -> 2 [style=invis];
  
  /* Survey -> Work */
  Work
   [label=<
<TABLE BORDER="2" CELLBORDER="0">
 <TR>
  <TD COLSPAN="5">Work</TD>
 </TR>
 <TR>
  <TD PORT="survey"><FONT POINT-SIZE="10.0">(survey)</FONT></TD>
  <TD PORT="reviews"><FONT POINT-SIZE="10.0">(reviews)</FONT></TD>
  <TD PORT="proposal"><FONT POINT-SIZE="10.0">(proposal)</FONT></TD>
  <TD PORT="documentation"><FONT POINT-SIZE="10.0">(documentation)</FONT></TD>
  <TD PORT="authors"><FONT POINT-SIZE="10.0">(authors)</FONT></TD>
 </TR>
</TABLE>
   >];

  Survey
   [label=<
<TABLE BORDER="2" CELLBORDER="0" BGCOLOR="white">
 <TR>
  <TD COLSPAN="2" PORT="work"><FONT POINT-SIZE="10.0">work</FONT></TD>
 </TR>
 <TR>
  <TD COLSPAN="2">Survey</TD>
 </TR>
 <TR>
  <TD PORT="questions"><FONT POINT-SIZE="10.0">(questions)</FONT></TD>
  <TD PORT="reviews"><FONT POINT-SIZE="10.0">(reviews)</FONT></TD>
 </TR>
</TABLE>
   >];

  WorkSurvey
   [label="work-(survey)" shape=diamond fontsize=10.0 style=filled];

  Work:survey -> WorkSurvey
   [taillabel="0/1"];

  WorkSurvey -> Survey:work
   [headlabel="1" style=dashed];

  /* Survey <-> Question */
  Question
    [label=<
<TABLE BORDER="2" CELLBORDER="0" BGCOLOR="white">
 <TR>
  <TD PORT="surveys"><FONT POINT-SIZE="10.0">(surveys)</FONT></TD>
 </TR>
 <TR>
  <TD>Question</TD>
 </TR>
 <TR>
  <TD PORT="answers"><FONT POINT-SIZE="10.0">(answers)</FONT></TD>
 </TR>
</TABLE>
   >];

  SurveysQuestions
   [shape=diamond label="SurveysQuestions" fontsize=10.0 style=filled];

  Survey:questions -> SurveysQuestions
   [taillabel="N" style=dashed labelangle=60.0 labeldistance=1.5];

  SurveysQuestions -> Question:surveys
   [headlabel="N" style=dashed];

  /* Review -> Survey */
  Review
   [label=<
<TABLE BORDER="2" CELLBORDER="0" BGCOLOR="white">
 <TR>
  <TD PORT="survey"><FONT POINT-SIZE="10.0">survey</FONT></TD>
  <TD PORT="reviewed"><FONT POINT-SIZE="10.0">reviewed</FONT></TD>
 </TR>
 <TR>
  <TD COLSPAN="2">Review</TD>
 </TR>
 <TR>
  <TD PORT="answers"><FONT POINT-SIZE="10.0">(answers)</FONT></TD>
  <TD PORT="reviewer"><FONT POINT-SIZE="10.0">reviewer</FONT></TD>
 </TR>
</TABLE>
   >];

  SurveyReviews
   [shape=diamond label="survey-(reviews)" fontsize=10.0 style=filled];

  Survey:reviews -> SurveyReviews
   [taillabel="N"];

  SurveyReviews -> Review:survey
   [headlabel="1" style=dashed];

  /* Review -> Work */
  ReviewedReviews
   [shape=diamond label="reviewed-(reviews)" fontsize=10.0 style=filled];
  
  Work:reviews -> ReviewedReviews
   [taillabel="N"];

  ReviewedReviews -> Review:reviewed
   [headlabel="1" style=dashed];
  
  /* Review -> Answer */
  Answer
    [label=<
<TABLE BORDER="2" CELLBORDER="0" BGCOLOR="white">
 <TR>
  <TD PORT="question"><FONT POINT-SIZE="10.0">question</FONT></TD>
  <TD PORT="review"><FONT POINT-SIZE="10.0">review</FONT></TD>
 </TR>
 <TR>
  <TD COLSPAN="2">Answer</TD>
 </TR>
</TABLE>
   >];

  ReviewAnswers
   [shape=diamond label="review-(answers)" fontsize=10.0 style=filled];

  Review:answers -> ReviewAnswers
   [taillabel="N" style=dashed];

  ReviewAnswers -> Answer:review
   [headlabel="1"];

  QuestionAnswers
   [shape=diamond label="question-(answers)" fontsize=10.0 style=filled];

  Answer:question -> QuestionAnswers
   [taillabel="1" labeldistance=2.5];

  QuestionAnswers -> Question:answers
   [headlabel="N" style=dashed];

  /* Proposal -> Work */
  Proposal
   [label=<
<TABLE BORDER="2" CELLBORDER="0" BGCOLOR="white">
 <TR>
  <TD PORT="work"><FONT POINT-SIZE="10.0">work</FONT></TD>
 </TR>
 <TR>
  <TD>Proposal</TD>
 </TR>
 <TR>
  <TD PORT="tasks"><FONT POINT-SIZE="10.0">(tasks)</FONT></TD>
 </TR>
</TABLE>
   >];

  ProposalWork
   [shape=diamond label="work-(proposal)" fontsize=10.0 style=filled];

  Proposal:work -> ProposalWork
   [taillabel="1"];

  ProposalWork -> Work:proposal
   [headlabel="0/1" style=dashed];

  /* Documentation -> Work */
  Documentation
   [label=<
<TABLE BORDER="2" CELLBORDER="0">
 <TR>
  <TD PORT="work"><FONT POINT-SIZE="10.0">work</FONT></TD>
 </TR>
 <TR>
  <TD>Documentation</TD>
 </TR>
 <TR>
  <TD PORT="person"><FONT POINT-SIZE="10.0">person</FONT></TD>
 </TR>
</TABLE>
   >];
   
  WorkDocumentation
   [label="work-(documentation)" shape=diamond fontsize=10.0 style=filled];

  Work:documentation -> WorkDocumentation
   [taillabel="0/1"];

  WorkDocumentation -> Documentation:work
   [headlabel="1" style=dashed];

  /* Person -> Documentation */
  Person
   [label=<
<TABLE BORDER="1" CELLBORDER="0">
 <TR>
  <TD PORT="docs"><FONT POINT-SIZE="10.0">(docs)</FONT></TD>
 </TR>
 <TR>
  <TD>Person</TD>
 </TR>
</TABLE>
   >];

  PersonDocs
   [label="person-(docs)" shape=diamond fontsize=10.0
    style=dotted];

  Person:docs -> PersonDocs
   [taillabel="N" style=dotted];

  PersonDocs -> Documentation:person
   [headlabel="1" style=dotted];

  /* Task -> Proposal */
  Task
   [label=<
<TABLE BORDER="2" CELLBORDER="0" BGCOLOR="white">
 <TR>
  <TD PORT="proposal"><FONT POINT-SIZE="10.0">proposal</FONT></TD>
 </TR>
 <TR>
  <TD>Task</TD>
 </TR>
 <TR>
  <TD PORT="contributors"><FONT POINT-SIZE="10.0">(contributors)</FONT>
  </TD>
  <TD></TD>
 </TR>
</TABLE>
   >];

  ProposalTasks
   [shape=diamond label="proposal-(tasks)" fontsize=10.0 style=filled];

  Task:proposal -> ProposalTasks
   [taillabel="1"];

  ProposalTasks -> Proposal:tasks
   [headlabel="N" style=dashed];

  /* Work <-> Author */
  Author
   [label=<
<TABLE BORDER="1" CELLBORDER="0" BGCOLOR="white">
 <TR>
  <TD PORT="authors"><FONT POINT-SIZE="10.0">(works)</FONT></TD>
 </TR>
 <TR>
  <TD>Author</TD>
 </TR>
</TABLE>
   >];

  WorksAuthors
   [label="WorksAuthors" shape=diamond fontsize=10.0 style=dotted];

  Author:authors -> WorksAuthors
   [taillabel="N" style=dotted];

  WorksAuthors -> Work:authors
   [headlabel="N" style=dotted];

  /* Task <-> Contributor */
  Contributor
   [label=<
<TABLE BORDER="1" CELLBORDER="0">
 <TR>
  <TD PORT="tasks"><FONT POINT-SIZE="10.0">(tasks)</FONT></TD>
 </TR>
 <TR>
  <TD>Contributor</TD>
 </TR>
</TABLE>
   >];

  TasksContributors
   [label="TasksContributors" shape=diamond fontsize=10.0
    style=dotted];

  Contributor:tasks -> TasksContributors
   [taillabel="N" style=dotted];

  TasksContributors -> Task:contributors
   [headlabel="N" style=dotted];

  /* Review -> Reviewer */
  Reviewer
   [label=<
<TABLE BORDER="1" CELLBORDER="0">
 <TR>
  <TD PORT="reviews"><FONT POINT-SIZE="10.0">(reviews)</FONT></TD>
 </TR>
 <TR>
  <TD>Reviewer</TD>
 </TR>
</TABLE>
   >];

  ReviewerReviews
   [label="reviewer-(reviews)" shape=diamond fontsize=10.0
    style=dotted];

  Reviewer:reviews -> ReviewerReviews
   [taillabel="N" style=dotted];

  ReviewerReviews -> Review:reviewer
   [headlabel="1" style=dotted];

  /* manually assigned "level" ranks to produce an easier-to-read graph */
  { rank=same;
    "8"; "Work";
  };

  { rank=same;
    "7"; "ProposalWork";
  };

  { rank=same;
    "6"; "Survey"; "Proposal"; "Documentation";
  };

  { rank=same;
    "5"; "SurveysQuestions"; "ProposalTasks"; "ReviewedReviews";
  };

  { rank=same;
    "4"; "Question"; "Task"; "Review";
  };

  { rank=same;
    "3"; "QuestionAnswers"; "TasksContributors"; "ReviewerReviews";
    "WorksAuthors"; "PersonDocs"; "ReviewAnswers";
  };

  { rank=same;
    "2"; "Contributor"; "Reviewer"; "Author"; "Person"; "Answer";  
  };
}
