Re: [graphviz-interest] Workflow diagram - swim lane subgraphs, state nodes, transition edges
Jeff Kowalczyk <jtk <at> yahoo.com>
2007-04-05 02:36:19 GMT
I finally figured out that cluster_N was significant for subgraph names, I
had been using 'member' and 'reviewer' and baffled why no subgraphs
appeared.
I'm getting much closer, but I still need to force a few constraints on
layout of the following digraph, and wondered if anyone could help:
digraph "Default Workflow [Plone]" {
size="8,8";
node [shape="circle" fontsize=12 fontname=helvetica];
edge [fontsize=9 fontname=helvetica];
subgraph cluster_0 {
label="Member";
style="dashed";
visible [shape=doublecircle label="Public\nDraft\n(visible)"];
private [label="Private\n(private)"];
private -> visible [label="Member\nmakes\ncontent\nvisible\n(show)"];
visible -> private [label="Member\nmakes\ncontent\nprivate\n(hide)"];
}
subgraph cluster_1 {
label="Reviewer";
style="dashed";
pending [label="Pending\n(pending)"];
published [label="Published\n(published)"];
pending -> published [label="Reviewer\npublishes\ncontent\n(publish)"];
}
visible -> pending [label="Member\nrequests\npublishing\n(submit)"];
visible -> published [label="Reviewer\npublishes\ncontent\n(publish)"];
pending -> private [label="Member\nmakes\ncontent\nprivate\n(hide)"];
pending -> visible [label="Member\nretracts\nsubmission\n(retract)"];
pending -> visible [label="Reviewer\nrejects\nsubmission\n(reject)"];
published -> visible [label="Member\nretracts\nsubmission\n(retract)"];
published -> visible [label="Reviewer\nrejects\nsubmission\n(reject)"];
}
* Node 'visible' needs to be the top-leftmost node, which implies that
'cluster_0' must be the top-leftmost subgraph. The above renders the two
subgraphs inverted from their intended precedence positions.
* Labels must not overlap
* I'd like to force a uniform size on the nodes, even if the text label
spills over its borders.
The following SVG (apologies if this newsreader chops the output), is how
I would lay this graph out by hand, but I'm appreciative of anything that
can accomodate the above constraints.
Thanks.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generated by Graphviz version 2.12 (Mon Mar 5 20:38:49 UTC 2007)
For user: (jtk) -->
<!-- Title: Default Workflow [Plone] Pages: 1 -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="650"
height="650"
id="svg2555"
sodipodi:version="0.32"
inkscape:version="0.45+devel"
sodipodi:docname="plone_workflow_swimlanes.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.0">
<metadata
id="metadata2801">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs2799">
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;">
<path
id="path9681"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469
6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lend"
style="overflow:visible;">
<path
id="path9663"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<title
id="title2558">Default Workflow [Plone]</title>
</defs>
<sodipodi:namedview
inkscape:window-height="693"
inkscape:window-width="1024"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
inkscape:zoom="0.79230769"
inkscape:cx="325"
inkscape:cy="406.32443"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:current-layer="svg2555"
width="650px"
height="650px" />
<g
class="node"
id="node2"
transform="matrix(1.33333,0,0,1.33333,-132.07421,676.36659)">
<title
id="title2563">visible</title>
<ellipse
sodipodi:ry="40.531101"
sodipodi:rx="40.075699"
sodipodi:cy="-425"
sodipodi:cx="206"
id="ellipse2565"
ry="40.531101"
rx="40.075699"
cy="-425"
cx="206"
style="fill:none;stroke:#000000" />
<ellipse
sodipodi:ry="44.531101"
sodipodi:rx="44.030701"
sodipodi:cy="-425"
sodipodi:cx="206"
id="ellipse2567"
ry="44.531101"
rx="44.030701"
cy="-425"
cx="206"
style="fill:none;stroke:#000000" />
<text
id="text2569"
style="font-size:12.14999962px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-435"
x="206">Public</text>
<text
id="text2571"
style="font-size:12.14999962px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-421"
x="206">Draft</text>
<text
id="text2573"
style="font-size:12.14999962px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-407"
x="206">(visible)</text>
</g>
<g
class="node"
id="node3"
transform="matrix(1.33333,0,0,1.33333,43.925351,509.48828)">
<title
id="title2576">private</title>
<ellipse
sodipodi:ry="42.422401"
sodipodi:rx="41.923401"
sodipodi:cy="-62"
sodipodi:cx="74"
id="ellipse2578"
ry="42.422401"
rx="41.923401"
cy="-62"
cx="74"
style="fill:none;stroke:#000000" />
<text
id="text2580"
style="font-size:12.14999962px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-64"
x="74">Private</text>
<text
id="text2582"
style="font-size:12.14999962px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-50"
x="74">(private)</text>
</g>
<g
class="edge"
id="edge22"
transform="matrix(1.33333,0,0,1.33333,6.889828,608.24719)">
<title
id="title2585">visible->private</title>
<a
id="a2591"
xlink:title="Member\nmakes\ncontent\nprivate\n(hide)" />
<a
id="a2593"
xlink:title="Member\nmakes\ncontent\nprivate\n(hide)" />
<text
id="text2595"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-271"
x="90">Member</text>
<text
id="text2597"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-260"
x="90">makes</text>
<text
id="text2599"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-249"
x="90">content</text>
<text
id="text2601"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-238"
x="90">private</text>
<text
id="text2603"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-227"
x="90">(hide)</text>
</g>
<g
class="node"
id="node5"
transform="matrix(1.33333,0,0,1.33333,261.71492,616.75443)">
<title
id="title2606">pending</title>
<ellipse
sodipodi:ry="47.1479"
sodipodi:rx="47.1479"
sodipodi:cy="-253"
sodipodi:cx="175"
id="ellipse2608"
ry="47.1479"
rx="47.1479"
cy="-253"
cx="175"
style="fill:none;stroke:#000000" />
<text
id="text2610"
style="font-size:12.14999962px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-255"
x="175">Pending</text>
<text
id="text2612"
style="font-size:12.14999962px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-241"
x="175">(pending)</text>
</g>
<g
class="edge"
id="edge14"
transform="matrix(1.33333,0,0,1.33333,-13.101604,646.99666)">
<title
id="title2615">visible->pending</title>
<a
id="a2621"
xlink:title="Member\nrequests\npublishing\n(submit)" />
<a
id="a2623"
xlink:title="Member\nrequests\npublishing\n(submit)" />
<text
id="text2625"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-353"
x="196">Member</text>
<text
id="text2627"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-342"
x="196">requests</text>
<text
id="text2629"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-331"
x="196">publishing</text>
<text
id="text2631"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-320"
x="196">(submit)</text>
</g>
<g
class="node"
id="node8"
transform="matrix(1.33333,0,0,1.33333,44.382129,657.92307)">
<title
id="title2634">published</title>
<ellipse
sodipodi:ry="53.273399"
sodipodi:rx="52.775501"
sodipodi:cy="-62"
sodipodi:cx="338"
id="ellipse2636"
ry="53.273399"
rx="52.775501"
cy="-62"
cx="338"
style="fill:none;stroke:#000000" />
<text
id="text2638"
style="font-size:12.14999962px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-64"
x="338">Published</text>
<text
id="text2640"
style="font-size:12.14999962px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-50"
x="338">(published)</text>
</g>
<g
class="edge"
id="edge20"
transform="matrix(1.33333,0,0,1.33333,-63.648422,754.55304)">
<title
id="title2643">visible->published</title>
<a
id="a2649"
xlink:title="Reviewer\npublishes\ncontent\n(publish)" />
<a
id="a2651"
xlink:title="Reviewer\npublishes\ncontent\n(publish)" />
<text
id="text2653"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-266"
x="387">Reviewer</text>
<text
id="text2655"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-255"
x="387">publishes</text>
<text
id="text2657"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-244"
x="387">content</text>
<text
id="text2659"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-233"
x="387">(publish)</text>
</g>
<g
class="edge"
id="edge3"
transform="matrix(1.33333,0,0,1.33333,1.410376,608.23504)">
<title
id="title2662">private->visible</title>
<a
id="a2668"
xlink:title="Member\nmakes\ncontent\nvisible\n(show)" />
<a
id="a2670"
xlink:title="Member\nmakes\ncontent\nvisible\n(show)" />
<text
id="text2672"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-271"
x="40">Member</text>
<text
id="text2674"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-260"
x="40">makes</text>
<text
id="text2676"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-249"
x="40">content</text>
<text
id="text2678"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-238"
x="40">visible</text>
<text
id="text2680"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-227"
x="40">(show)</text>
</g>
<g
class="edge"
id="edge16"
transform="matrix(1.33333,0,0,1.33333,95.974892,647.44621)">
<title
id="title2683">pending->visible</title>
<a
id="a2689"
xlink:title="Reviewer\nrejects\nsubmission\n(reject)" />
<a
id="a2691"
xlink:title="Reviewer\nrejects\nsubmission\n(reject)" />
<text
id="text2693"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-353"
x="241">Reviewer</text>
<text
id="text2695"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-342"
x="241">rejects</text>
<text
id="text2697"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-331"
x="241">submission</text>
<text
id="text2699"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-320"
x="241">(reject)</text>
</g>
<g
class="edge"
id="edge18"
transform="matrix(1.33333,0,0,1.33333,20.961384,744.75804)">
<title
id="title2702">pending->visible</title>
<a
id="a2708"
xlink:title="Member\nretracts\nsubmission\n(retract)" />
<a
id="a2710"
xlink:title="Member\nretracts\nsubmission\n(retract)" />
<text
id="text2712"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-353"
x="142">Member</text>
<text
id="text2714"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-342"
x="142">retracts</text>
<text
id="text2716"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-331"
x="142">submission</text>
<text
id="text2718"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-320"
x="142">(retract)</text>
</g>
<g
class="edge"
id="edge5"
transform="matrix(1.33333,0,0,1.33333,61.730033,592.33656)">
<title
id="title2721">pending->private</title>
<a
id="a2727"
xlink:title="Member\nmakes\ncontent\nprivate\n(hide)" />
<a
id="a2729"
xlink:title="Member\nmakes\ncontent\nprivate\n(hide)" />
<text
id="text2731"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-179"
x="154">Member</text>
<text
id="text2733"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-168"
x="154">makes</text>
<text
id="text2735"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-157"
x="154">content</text>
<text
id="text2737"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-146"
x="154">private</text>
<text
id="text2739"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-135"
x="154">(hide)</text>
</g>
<g
class="edge"
id="edge8"
transform="matrix(1.33333,0,0,1.33333,262.93952,757.05551)">
<title
id="title2742">pending->published</title>
<a
id="a2748"
xlink:title="Reviewer\npublishes\ncontent\n(publish)" />
<a
id="a2750"
xlink:title="Reviewer\npublishes\ncontent\n(publish)" />
<text
id="text2752"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-174"
x="265">Reviewer</text>
<text
id="text2754"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-163"
x="265">publishes</text>
<text
id="text2756"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-152"
x="265">content</text>
<text
id="text2758"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-141"
x="265">(publish)</text>
</g>
<g
class="edge"
id="edge10"
transform="matrix(1.33333,0,0,1.33333,-44.582794,754.16424)">
<title
id="title2761">published->visible</title>
<a
id="a2767"
xlink:title="Reviewer\nrejects\nsubmission\n(reject)" />
<a
id="a2769"
xlink:title="Reviewer\nrejects\nsubmission\n(reject)" />
<text
id="text2771"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-266"
x="449">Reviewer</text>
<text
id="text2773"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-255"
x="449">rejects</text>
<text
id="text2775"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-244"
x="449">submission</text>
<text
id="text2777"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-233"
x="449">(reject)</text>
</g>
<g
class="edge"
id="edge12"
transform="matrix(1.33333,0,0,1.33333,-197.73462,896.73269)">
<title
id="title2780">published->visible</title>
<a
id="a2786"
xlink:title="Member\nretracts\nsubmission\n(retract)" />
<a
id="a2788"
xlink:title="Member\nretracts\nsubmission\n(retract)" />
<text
id="text2790"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-266"
x="327">Member</text>
<text
id="text2792"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-255"
x="327">retracts</text>
<text
id="text2794"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-244"
x="327">submission</text>
<text
id="text2796"
style="font-size:9.11250019px;text-anchor:middle;font-family:'Nimbus Sans L'"
y="-233"
x="327">(retract)</text>
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.11186922;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:13.34242999, 13.34242999;stroke-dashoffset:0;stroke-opacity:1"
d="M 320.24775,44.606863 L 320.24775,637.06923"
id="path7250"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:'Bitstream
Vera Sans'"
x="123.84078"
y="34.825638"
id="text7633"><tspan
sodipodi:role="line"
x="123.84078"
y="34.825638"
id="tspan7637">Member</tspan></text>
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:'Bitstream
Vera Sans'"
x="458.03262"
y="34.825638"
id="text7641"><tspan
sodipodi:role="line"
x="458.03262"
y="34.825638"
id="tspan7645">Reviewer</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-opacity:1"
d="M 96.831064,152.58954 C 59.698638,276.75108 104.95378,378.86526 104.95378,378.86526"
id="path8893"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
d="M 112.87844,371.90293 C 81.547958,261.66604 107.0765,163.03303 107.0765,163.03303"
id="path10637"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
d="M 427.0229,279.07186 C 298.21979,297.63807 177.53941,381.18603 177.53941,381.18603"
id="path11034" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
d="M 553.50522,526.23456 C 630.09084,395.11069 590.11214,212.53378 537.25978,163.03303 C
454.04292,85.093322 206.54911,103.85322 206.54911,103.85322"
id="path11822"
sodipodi:nodetypes="csc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-opacity:1"
d="M 501.28775,211.76934 C 481.56114,118.93827 205.38873,118.93828 205.38873,118.93828"
id="path12217"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
d="M 425.86251,274.43031 C 229.75688,312.72313 194.88717,238.95137 165.93553,169.99537"
id="path12612"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
d="M 181.02058,160.71225 C 207.70951,305.76079 429.34367,266.30759 429.34367,266.30759"
id="path13007"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
d="M 493.16503,345.21399 L 493.16503,499.54563"
id="path13402"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
d="M 422.38134,599.33903 C 284.29513,601.65981 199.61854,601.56453 98.633009,571.4897 C
-0.22286157,542.04912 11.024606,328.3592 13.92466,236.1375 C 16.824713,143.9158
77.746016,110.81556 77.746016,110.81556"
id="path13797"
sodipodi:nodetypes="czzc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
d="M 201.90756,81.805849 C 552.34483,80.645461 562.07626,124.87584 598.76036,203.64662 C
635.65395,282.86723 630.46778,341.3569 625.4493,413.6769 C 620.51096,484.84203
563.94872,544.80079 563.94872,544.80079"
id="path14192"
sodipodi:nodetypes="czzc" />
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:'Bitstream
Vera Sans'"
x="256.62137"
y="18.194176"
id="text14587"><tspan
sodipodi:role="line"
id="tspan14589"
x="256.62137"
y="18.194176">Plone Workflow</tspan></text>
</svg>
_______________________________________________
graphviz-interest <at> research.att.com
https://mailman.research.att.com/mailman/listinfo/graphviz-interest