| /* 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 RoleModels { | |
| /* 11 inches x 96 DPI is 1056 pixels wide */ | |
| size="11,11"; | |
| edge [fontsize=10.0 len=1.5 arrowhead=none labeldistance=1.5] | |
| node [shape=plaintext]; | |
| root = User; | |
| rankdir = "BT"; | |
| /* Person -> User */ | |
| User | |
| [label=< | |
| <TABLE BORDER="2" CELLBORDER="0"> | |
| <TR> | |
| <TD>User</TD> | |
| </TR> | |
| <TR> | |
| <TD PORT="persons"><FONT POINT-SIZE="10.0">(persons)</FONT></TD> | |
| </TR> | |
| </TABLE> | |
| >]; | |
| Person | |
| [label=< | |
| <TABLE BORDER="2" CELLBORDER="0" BGCOLOR="white"> | |
| <TR> | |
| <TD PORT="user" COLSPAN="2"><FONT POINT-SIZE="10.0">user</FONT></TD> | |
| </TR> | |
| <TR> | |
| <TD COLSPAN="2">Person</TD> | |
| </TR> | |
| <TR> | |
| <TD PORT="author"><FONT POINT-SIZE="10.0">(author)</FONT></TD> | |
| <TD PORT="docs"><FONT POINT-SIZE="10.0">(docs)</FONT></TD> | |
| </TR> | |
| </TABLE> | |
| >]; | |
| UserPersons | |
| [shape=diamond label="user-(persons)" fontsize=10.0 style=filled]; | |
| Person:user -> UserPersons | |
| [taillabel="1"]; | |
| UserPersons -> User:persons | |
| [headlabel="N" style=dashed]; | |
| /* Author -> Person */ | |
| Author | |
| [label=< | |
| <TABLE BORDER="2" CELLBORDER="0"> | |
| <TR> | |
| <TD PORT="person" COLSPAN="4"><FONT POINT-SIZE="10.0">person</FONT></TD> | |
| </TR> | |
| <TR> | |
| <TD COLSPAN="4">Author</TD> | |
| </TR> | |
| <TR> | |
| <TD PORT="works"><FONT POINT-SIZE="10.0">(works)</FONT></TD> | |
| <TD PORT="contributor"><FONT POINT-SIZE="10.0">(contributor)</FONT></TD> | |
| <TD PORT="reviewer"><FONT POINT-SIZE="10.0">(reviewer)</FONT></TD> | |
| <TD PORT="admin"><FONT POINT-SIZE="10.0">(admin)</FONT></TD> | |
| </TR> | |
| </TABLE> | |
| >]; | |
| PersonAuthor | |
| [shape=diamond label="person-(author)" fontsize=10.0 style=filled]; | |
| Author:person -> PersonAuthor | |
| [taillabel="1"]; | |
| PersonAuthor -> Person:author | |
| [headlabel="1" style=dashed]; | |
| /* Person <-> Documentation */ | |
| Documentation | |
| [label=< | |
| <TABLE BORDER="1" CELLBORDER="0"> | |
| <TR> | |
| <TD PORT="person"><FONT POINT-SIZE="10.0">person</FONT></TD> | |
| </TR> | |
| <TR> | |
| <TD>Documentation</TD> | |
| </TR> | |
| </TABLE> | |
| >]; | |
| PersonDocs | |
| [label="person-(docs)" shape=diamond fontsize=10.0 | |
| style=dotted]; | |
| Documentation:person -> PersonDocs | |
| [taillabel="1" style=dotted]; | |
| PersonDocs -> Person:docs | |
| [headlabel="N" style=dotted]; | |
| /* Work <-> Author */ | |
| Work | |
| [label=< | |
| <TABLE BORDER="1" CELLBORDER="0"> | |
| <TR> | |
| <TD PORT="authors"><FONT POINT-SIZE="10.0">(authors)</FONT></TD> | |
| </TR> | |
| <TR> | |
| <TD>Work</TD> | |
| </TR> | |
| <TR> | |
| <TD PORT="proposal"><FONT POINT-SIZE="10.0">(proposal)</FONT></TD> | |
| </TR> | |
| </TABLE> | |
| >]; | |
| WorksAuthors | |
| [label="WorksAuthors" shape=diamond fontsize=10.0 style=dotted]; | |
| Work:authors -> WorksAuthors | |
| [taillabel="N" style=dotted]; | |
| WorksAuthors -> Author:works | |
| [headlabel="N" style=dotted]; | |
| /* Contributor -> Author */ | |
| Contributor | |
| [label=< | |
| <TABLE BORDER="2" CELLBORDER="0"> | |
| <TR> | |
| <TD PORT="author"><FONT POINT-SIZE="10.0">author</FONT></TD> | |
| </TR> | |
| <TR> | |
| <TD>Contributor</TD> | |
| </TR> | |
| <TR> | |
| <TD PORT="tasks"><FONT POINT-SIZE="10.0">(tasks)</FONT></TD> | |
| </TR> | |
| </TABLE> | |
| >]; | |
| ContributorAuthor | |
| [shape=diamond label="author-(contributor)" fontsize=10.0 style=filled]; | |
| Contributor:author -> ContributorAuthor | |
| [taillabel="1"]; | |
| ContributorAuthor -> Author:contributor | |
| [headlabel="1" style=dashed]; | |
| /* Proposal <-> Contributor */ | |
| Proposal | |
| [label=< | |
| <TABLE BORDER="1" CELLBORDER="0"> | |
| <TR> | |
| <TD PORT="work"><FONT POINT-SIZE="10.0">work</FONT></TD> | |
| </TR> | |
| <TR> | |
| <TD>Proposal</TD> | |
| </TR> | |
| </TABLE> | |
| >]; | |
| WorkProposal | |
| [label="work-(proposal)" shape=diamond fontsize=10.0 | |
| style=dotted]; | |
| Proposal:work -> WorkProposal | |
| [taillabel="1" style=dotted]; | |
| WorkProposal -> Work:proposal | |
| [headlabel="1" style=dotted]; | |
| /* Task <-> Contributor */ | |
| Task | |
| [label=< | |
| <TABLE BORDER="1" CELLBORDER="0"> | |
| <TR> | |
| <TD PORT="contributors"><FONT POINT-SIZE="10.0">(contributors)</FONT></TD> | |
| </TR> | |
| <TR> | |
| <TD>Task</TD> | |
| </TR> | |
| </TABLE> | |
| >]; | |
| TasksContributors | |
| [label="TasksContributors" shape=diamond fontsize=10.0 | |
| style=dotted]; | |
| Task:contributors -> TasksContributors | |
| [taillabel="N" style=dotted]; | |
| TasksContributors -> Contributor:tasks | |
| [headlabel="N" style=dotted]; | |
| /* Reviewer -> Author */ | |
| Reviewer | |
| [label=< | |
| <TABLE BORDER="2" CELLBORDER="0"> | |
| <TR> | |
| <TD PORT="author"><FONT POINT-SIZE="10.0">author</FONT></TD> | |
| </TR> | |
| <TR> | |
| <TD>Reviewer</TD> | |
| </TR> | |
| <TR> | |
| <TD PORT="reviews"><FONT POINT-SIZE="10.0">(reviews)</FONT></TD> | |
| </TR> | |
| </TABLE> | |
| >]; | |
| AuthorReviewer | |
| [shape=diamond label="author-(reviewer)" fontsize=10.0 style=filled]; | |
| Reviewer:author -> AuthorReviewer | |
| [taillabel="1"]; | |
| AuthorReviewer -> Author:reviewer | |
| [headlabel="1" style=dashed labelangle=75.0]; | |
| /* Review -> Reviewer */ | |
| Review | |
| [label=< | |
| <TABLE BORDER="1" CELLBORDER="0"> | |
| <TR> | |
| <TD PORT="reviewer"><FONT POINT-SIZE="10.0">reviewer</FONT></TD> | |
| </TR> | |
| <TR> | |
| <TD>Review</TD> | |
| </TR> | |
| </TABLE> | |
| >]; | |
| ReviewerReviews | |
| [label="reviewer-(reviews)" shape=diamond fontsize=10.0 | |
| style=dotted]; | |
| Review:reviewer -> ReviewerReviews | |
| [taillabel="1" style=dotted]; | |
| ReviewerReviews -> Reviewer:reviews | |
| [headlabel="N" style=dotted]; | |
| /* Administrator -> Author */ | |
| Administrator | |
| [label=< | |
| <TABLE BORDER="2" CELLBORDER="0"> | |
| <TR> | |
| <TD PORT="author"><FONT POINT-SIZE="10.0">author</FONT></TD> | |
| </TR> | |
| <TR> | |
| <TD>Administrator</TD> | |
| </TR> | |
| <TR> | |
| <TD PORT="host"><FONT POINT-SIZE="10.0">(host)</FONT></TD> | |
| </TR> | |
| </TABLE> | |
| >]; | |
| AuthorAdministrator | |
| [shape=diamond label="author-(admin)" fontsize=10.0 style=filled]; | |
| Administrator:author -> AuthorAdministrator | |
| [taillabel="1"]; | |
| AuthorAdministrator -> Author:admin | |
| [headlabel="1" style=dashed]; | |
| /* Host -> Administrator */ | |
| Host | |
| [label=< | |
| <TABLE BORDER="2" CELLBORDER="0"> | |
| <TR> | |
| <TD PORT="admin"><FONT POINT-SIZE="10.0">admin</FONT></TD> | |
| </TR> | |
| <TR> | |
| <TD>Host</TD> | |
| </TR> | |
| </TABLE> | |
| >]; | |
| HostAdministrator | |
| [shape=diamond label="admin-(host)" fontsize=10.0 style=filled]; | |
| Host:admin -> HostAdministrator | |
| [taillabel="1"]; | |
| HostAdministrator -> Administrator:host | |
| [headlabel="1" style=dashed]; | |
| } |