blog
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Mon, 10 Sep 2012 14:05:54 +0100
changeset 4443 d85ea94d156f
parent 4442 f7053b2e4f85
child 4444 970337d5ca6c
blog
model/blog/blog.dot
model/blog/blog1.dot
model/blog/blog1.svg
model/blog/blog2.dot
model/blog/blog2.svg
model/blog/constraints-blog.html
model/constraints-blog.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/model/blog/blog.dot	Mon Sep 10 14:05:54 2012 +0100
@@ -0,0 +1,10 @@
+digraph OPMGraph { rankdir="BT"; 
+na1 [label="a1",shape="polygon",sides="4"]
+na2 [label="a2",shape="polygon",sides="4"]
+ne1 [label="e1"]
+ne2 [label="e2"]
+ne2 -> na2 [labeldistance="1.5",rotation="20",taillabel="gen",labelfontsize="8",labelangle="60.0"]
+ne1 -> na1 [labeldistance="1.5",rotation="20",taillabel="gen",labelfontsize="8",labelangle="60.0"]
+ne2 -> ne1 [labeldistance="1.5",rotation="20",taillabel="der",labelfontsize="8",labelangle="60.0"]
+ne1 -> ne2 [labeldistance="1.5",rotation="20",taillabel="der",labelfontsize="8",labelangle="60.0"]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/model/blog/blog1.dot	Mon Sep 10 14:05:54 2012 +0100
@@ -0,0 +1,9 @@
+digraph OPMGraph { rankdir="BT"; 
+na1 [label="a1",shape="polygon",sides="4"]
+na2 [label="a2",shape="polygon",sides="4"]
+ne1 [label="e1"]
+ne2 [label="e2"]
+ne2 -> na2 [labeldistance="1.5",rotation="20",taillabel="gen2",labelfontsize="8",labelangle="60.0"]
+ne1 -> na1 [labeldistance="1.5",rotation="20",taillabel="gen1",labelfontsize="8",labelangle="60.0"]
+ne2 -> ne1 [labeldistance="1.5",rotation="20",taillabel="d1",labelfontsize="8",labelangle="60.0"]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/model/blog/blog1.svg	Mon Sep 10 14:05:54 2012 +0100
@@ -0,0 +1,366 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generated by graphviz version 2.28.0 (20120228.1928)
+ -->
+
+<!-- Title: OPMGraph Pages: 1 -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="134pt"
+   height="188pt"
+   viewBox="0.00 0.00 134.00 188.00"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="blog1.svg">
+  <metadata
+     id="metadata68">
+    <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="defs66" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="1018"
+     id="namedview64"
+     showgrid="false"
+     inkscape:zoom="3.4526316"
+     inkscape:cx="84.375"
+     inkscape:cy="116.875"
+     inkscape:window-x="1680"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <g
+     id="graph1"
+     class="graph"
+     transform="scale(1 1) rotate(0) translate(4 184)">
+    <title
+       id="title5">OPMGraph</title>
+    <polygon
+       fill="white"
+       stroke="white"
+       points="-4,5 -4,-184 131,-184 131,5 -4,5"
+       id="polygon7" />
+    <!-- na1 -->
+    <g
+       id="node1"
+       class="node">
+      <title
+         id="title10">na1</title>
+      <polygon
+         fill="none"
+         stroke="black"
+         points="126,-180 72,-180 72,-144 126,-144 126,-180"
+         id="polygon12" />
+      <text
+         text-anchor="middle"
+         x="99"
+         y="-158.3"
+         font-family="Times,serif"
+         font-size="14.00"
+         id="text14">a1</text>
+    </g>
+    <!-- na2 -->
+    <g
+       id="node2"
+       class="node">
+      <title
+         id="title17">na2</title>
+      <polygon
+         fill="none"
+         stroke="black"
+         points="54,-108 0,-108 0,-72 54,-72 54,-108"
+         id="polygon19" />
+      <text
+         text-anchor="middle"
+         x="27"
+         y="-86.3"
+         font-family="Times,serif"
+         font-size="14.00"
+         id="text21">a2</text>
+    </g>
+    <!-- ne1 -->
+    <g
+       id="node3"
+       class="node">
+      <title
+         id="title24">ne1</title>
+      <ellipse
+         fill="none"
+         stroke="black"
+         cx="99"
+         cy="-90"
+         rx="27"
+         ry="18"
+         id="ellipse26"
+         d="m 126,-90 c 0,9.941125 -12.08831,18 -27,18 -14.911688,0 -27,-8.058875 -27,-18 0,-9.941125 12.088312,-18 27,-18 14.91169,0 27,8.058875 27,18 z" />
+      <text
+         text-anchor="middle"
+         x="99"
+         y="-86.3"
+         font-family="Times,serif"
+         font-size="14.00"
+         id="text28">e1</text>
+    </g>
+    <!-- ne1&#45;&gt;na1 -->
+    <g
+       id="edge4"
+       class="edge">
+      <title
+         id="title31">ne1-&gt;na1</title>
+      <path
+         fill="none"
+         stroke="black"
+         d="M99,-108.303C99,-116.017 99,-125.288 99,-133.888"
+         id="path33" />
+      <polygon
+         fill="black"
+         stroke="black"
+         points="95.5001,-133.896 99,-143.896 102.5,-133.896 95.5001,-133.896"
+         id="polygon35" />
+      <text
+         text-anchor="middle"
+         x="111.99"
+         y="-113.903"
+         font-family="Times,serif"
+         font-size="8.00"
+         id="text37">gen1</text>
+    </g>
+    <!-- ne2 -->
+    <g
+       id="node4"
+       class="node">
+      <title
+         id="title40">ne2</title>
+      <ellipse
+         fill="none"
+         stroke="black"
+         cx="63"
+         cy="-18"
+         rx="27"
+         ry="18"
+         id="ellipse42"
+         d="M 90,-18 C 90,-8.0588745 77.911688,0 63,0 48.088312,0 36,-8.0588745 36,-18 c 0,-9.941125 12.088312,-18 27,-18 14.911688,0 27,8.058875 27,18 z" />
+      <text
+         text-anchor="middle"
+         x="63"
+         y="-14.3"
+         font-family="Times,serif"
+         font-size="14.00"
+         id="text44">e2</text>
+    </g>
+    <!-- ne2&#45;&gt;na2 -->
+    <g
+       id="edge2"
+       class="edge">
+      <title
+         id="title47">ne2-&gt;na2</title>
+      <path
+         fill="none"
+         stroke="black"
+         d="M54.6504,-35.2354C50.4572,-43.3887 45.2721,-53.4709 40.5291,-62.6934"
+         id="path49" />
+      <polygon
+         fill="black"
+         stroke="black"
+         points="37.2676,-61.3824 35.8066,-71.8761 43.4926,-64.5839 37.2676,-61.3824"
+         id="polygon51" />
+      <text
+         text-anchor="middle"
+         x="62.7725"
+         y="-45.9461"
+         font-family="Times,serif"
+         font-size="8.00"
+         id="text53">gen2</text>
+    </g>
+    <!-- ne2&#45;&gt;ne1 -->
+    <g
+       id="edge6"
+       class="edge">
+      <title
+         id="title56">ne2-&gt;ne1</title>
+      <path
+         fill="none"
+         stroke="black"
+         d="M71.3496,-35.2354C75.7115,-43.7169 81.1469,-54.2856 86.0413,-63.8026"
+         id="path58" />
+      <polygon
+         fill="black"
+         stroke="black"
+         points="83.0096,-65.5605 90.6957,-72.8527 89.2346,-62.3591 83.0096,-65.5605"
+         id="polygon60" />
+      <text
+         text-anchor="middle"
+         x="86.3319"
+         y="-34.0639"
+         font-family="Times,serif"
+         font-size="8.00"
+         id="text62">d1</text>
+    </g>
+  </g>
+  <polygon
+     style="fill:#ffffff;stroke:#ffffff"
+     points="131,-184 131,5 -4,5 -4,5 -4,-184 "
+     id="polygon3049"
+     transform="translate(4,184)" />
+  <g
+     id="g3051"
+     class="node"
+     transform="translate(4,184)">
+    <title
+       id="title3053">na1</title>
+    <polygon
+       style="fill:none;stroke:#000000"
+       points="72,-144 126,-144 126,-180 126,-180 72,-180 "
+       id="polygon3055" />
+    <text
+       style="font-size:14px;text-anchor:middle;font-family:'Times,serif'"
+       x="99"
+       y="-158.3"
+       font-size="14.00"
+       id="text3057">a1</text>
+  </g>
+  <g
+     id="g3059"
+     class="node"
+     transform="translate(4,184)">
+    <title
+       id="title3061">na2</title>
+    <polygon
+       style="fill:none;stroke:#000000"
+       points="0,-72 54,-72 54,-108 54,-108 0,-108 "
+       id="polygon3063" />
+    <text
+       style="font-size:14px;text-anchor:middle;font-family:'Times,serif'"
+       x="27"
+       y="-86.300003"
+       font-size="14.00"
+       id="text3065">a2</text>
+  </g>
+  <g
+     id="g3067"
+     class="node"
+     transform="translate(4,184)">
+    <title
+       id="title3069">ne1</title>
+    <ellipse
+       style="fill:none;stroke:#000000"
+       sodipodi:ry="18"
+       sodipodi:rx="27"
+       sodipodi:cy="-90"
+       sodipodi:cx="99"
+       cx="99"
+       cy="-90"
+       rx="27"
+       ry="18"
+       id="ellipse3071"
+       d="m 126,-90 c 0,9.941125 -12.08831,18 -27,18 -14.911688,0 -27,-8.058875 -27,-18 0,-9.941125 12.088312,-18 27,-18 14.91169,0 27,8.058875 27,18 z" />
+    <text
+       style="font-size:14px;text-anchor:middle;font-family:'Times,serif'"
+       x="99"
+       y="-86.300003"
+       font-size="14.00"
+       id="text3073">e1</text>
+  </g>
+  <g
+     id="g3075"
+     class="edge"
+     transform="translate(4,184)">
+    <title
+       id="title3077">ne1-&gt;na1</title>
+    <path
+       style="fill:none;stroke:#000000"
+       inkscape:connector-curvature="0"
+       d="m 99,-108.303 c 0,-7.714 0,-16.985 0,-25.585"
+       id="path3079" />
+    <polygon
+       style="fill:#000000;stroke:#000000"
+       points="102.5,-133.896 95.5001,-133.896 95.5001,-133.896 99,-143.896 "
+       id="polygon3081" />
+    <text
+       style="font-size:8px;text-anchor:middle;font-family:'Times,serif'"
+       x="111.99"
+       y="-113.903"
+       font-size="8.00"
+       id="text3083">gen1</text>
+  </g>
+  <g
+     id="g3085"
+     class="node"
+     transform="translate(4,184)">
+    <title
+       id="title3087">ne2</title>
+    <ellipse
+       style="fill:none;stroke:#000000"
+       sodipodi:ry="18"
+       sodipodi:rx="27"
+       sodipodi:cy="-18"
+       sodipodi:cx="63"
+       cx="63"
+       cy="-18"
+       rx="27"
+       ry="18"
+       id="ellipse3089"
+       d="M 90,-18 C 90,-8.0588745 77.911688,0 63,0 48.088312,0 36,-8.0588745 36,-18 c 0,-9.941125 12.088312,-18 27,-18 14.911688,0 27,8.058875 27,18 z" />
+    <text
+       style="font-size:14px;text-anchor:middle;font-family:'Times,serif'"
+       x="63"
+       y="-14.3"
+       font-size="14.00"
+       id="text3091">e2</text>
+  </g>
+  <path
+     id="path3097"
+     d="m 58.6504,148.7646 c -4.1932,-8.1533 -9.3783,-18.2355 -14.1213,-27.458"
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000" />
+  <polygon
+     id="polygon3099"
+     points="37.2676,-61.3824 35.8066,-71.8761 43.4926,-64.5839 37.2676,-61.3824 "
+     style="fill:#000000;stroke:#000000"
+     transform="translate(4,184)" />
+  <text
+     id="text3101"
+     font-size="8.00"
+     y="137.82219"
+     x="41.748108"
+     style="font-size:8px;text-anchor:middle;font-family:'Times,serif'">gen2</text>
+  <path
+     id="path3107"
+     d="m 75.3496,148.7646 c 4.3619,-8.4815 9.7973,-19.0502 14.6917,-28.5672"
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000" />
+  <polygon
+     id="polygon3109"
+     points="83.0096,-65.5605 90.6957,-72.8527 89.2346,-62.3591 83.0096,-65.5605 "
+     style="fill:#000000;stroke:#000000"
+     transform="translate(4,184)" />
+  <text
+     id="text3111"
+     font-size="8.00"
+     y="123.98488"
+     x="82.222145"
+     style="font-size:8px;text-anchor:middle;font-family:'Times,serif'">d1</text>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/model/blog/blog2.dot	Mon Sep 10 14:05:54 2012 +0100
@@ -0,0 +1,10 @@
+digraph OPMGraph { rankdir="BT"; 
+na1 [label="a1",shape="polygon",sides="4"]
+na2 [label="a2",shape="polygon",sides="4"]
+ne1 [label="e1"]
+ne2 [label="e2"]
+ne2 -> na2 [labeldistance="1.5",rotation="20",taillabel="gen2",labelfontsize="8",labelangle="60.0"]
+ne1 -> na1 [labeldistance="1.5",rotation="20",taillabel="gen1",labelfontsize="8",labelangle="60.0"]
+ne2 -> ne1 [labeldistance="1.5",rotation="20",taillabel="d1",labelfontsize="8",labelangle="60.0"]
+ne1 -> ne2 [labeldistance="1.5",rotation="20",taillabel="d2",labelfontsize="8",labelangle="60.0"]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/model/blog/blog2.svg	Mon Sep 10 14:05:54 2012 +0100
@@ -0,0 +1,390 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generated by graphviz version 2.28.0 (20120228.1928)
+ -->
+
+<!-- Title: OPMGraph Pages: 1 -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="134pt"
+   height="188pt"
+   viewBox="0.00 0.00 134.00 188.00"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="blog2.svg">
+  <metadata
+     id="metadata68">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs66" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1680"
+     inkscape:window-height="1018"
+     id="namedview64"
+     showgrid="false"
+     inkscape:zoom="3.4526316"
+     inkscape:cx="84.375"
+     inkscape:cy="116.875"
+     inkscape:window-x="1680"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <g
+     id="graph1"
+     class="graph"
+     transform="scale(1 1) rotate(0) translate(4 184)">
+    <title
+       id="title5">OPMGraph</title>
+    <polygon
+       fill="white"
+       stroke="white"
+       points="-4,5 -4,-184 131,-184 131,5 -4,5"
+       id="polygon7" />
+    <!-- na1 -->
+    <g
+       id="node1"
+       class="node">
+      <title
+         id="title10">na1</title>
+      <polygon
+         fill="none"
+         stroke="black"
+         points="126,-180 72,-180 72,-144 126,-144 126,-180"
+         id="polygon12" />
+      <text
+         text-anchor="middle"
+         x="99"
+         y="-158.3"
+         font-family="Times,serif"
+         font-size="14.00"
+         id="text14">a1</text>
+    </g>
+    <!-- na2 -->
+    <g
+       id="node2"
+       class="node">
+      <title
+         id="title17">na2</title>
+      <polygon
+         fill="none"
+         stroke="black"
+         points="54,-108 0,-108 0,-72 54,-72 54,-108"
+         id="polygon19" />
+      <text
+         text-anchor="middle"
+         x="27"
+         y="-86.3"
+         font-family="Times,serif"
+         font-size="14.00"
+         id="text21">a2</text>
+    </g>
+    <!-- ne1 -->
+    <g
+       id="node3"
+       class="node">
+      <title
+         id="title24">ne1</title>
+      <ellipse
+         fill="none"
+         stroke="black"
+         cx="99"
+         cy="-90"
+         rx="27"
+         ry="18"
+         id="ellipse26"
+         d="m 126,-90 c 0,9.941125 -12.08831,18 -27,18 -14.911688,0 -27,-8.058875 -27,-18 0,-9.941125 12.088312,-18 27,-18 14.91169,0 27,8.058875 27,18 z" />
+      <text
+         text-anchor="middle"
+         x="99"
+         y="-86.3"
+         font-family="Times,serif"
+         font-size="14.00"
+         id="text28">e1</text>
+    </g>
+    <!-- ne1&#45;&gt;na1 -->
+    <g
+       id="edge4"
+       class="edge">
+      <title
+         id="title31">ne1-&gt;na1</title>
+      <path
+         fill="none"
+         stroke="black"
+         d="M99,-108.303C99,-116.017 99,-125.288 99,-133.888"
+         id="path33" />
+      <polygon
+         fill="black"
+         stroke="black"
+         points="95.5001,-133.896 99,-143.896 102.5,-133.896 95.5001,-133.896"
+         id="polygon35" />
+      <text
+         text-anchor="middle"
+         x="111.99"
+         y="-113.903"
+         font-family="Times,serif"
+         font-size="8.00"
+         id="text37">gen1</text>
+    </g>
+    <!-- ne2 -->
+    <g
+       id="node4"
+       class="node">
+      <title
+         id="title40">ne2</title>
+      <ellipse
+         fill="none"
+         stroke="black"
+         cx="63"
+         cy="-18"
+         rx="27"
+         ry="18"
+         id="ellipse42"
+         d="M 90,-18 C 90,-8.0588745 77.911688,0 63,0 48.088312,0 36,-8.0588745 36,-18 c 0,-9.941125 12.088312,-18 27,-18 14.911688,0 27,8.058875 27,18 z" />
+      <text
+         text-anchor="middle"
+         x="63"
+         y="-14.3"
+         font-family="Times,serif"
+         font-size="14.00"
+         id="text44">e2</text>
+    </g>
+    <!-- ne2&#45;&gt;na2 -->
+    <g
+       id="edge2"
+       class="edge">
+      <title
+         id="title47">ne2-&gt;na2</title>
+      <path
+         fill="none"
+         stroke="black"
+         d="M54.6504,-35.2354C50.4572,-43.3887 45.2721,-53.4709 40.5291,-62.6934"
+         id="path49" />
+      <polygon
+         fill="black"
+         stroke="black"
+         points="37.2676,-61.3824 35.8066,-71.8761 43.4926,-64.5839 37.2676,-61.3824"
+         id="polygon51" />
+      <text
+         text-anchor="middle"
+         x="62.7725"
+         y="-45.9461"
+         font-family="Times,serif"
+         font-size="8.00"
+         id="text53">gen2</text>
+    </g>
+    <!-- ne2&#45;&gt;ne1 -->
+    <g
+       id="edge6"
+       class="edge">
+      <title
+         id="title56">ne2-&gt;ne1</title>
+      <path
+         fill="none"
+         stroke="black"
+         d="M71.3496,-35.2354C75.7115,-43.7169 81.1469,-54.2856 86.0413,-63.8026"
+         id="path58" />
+      <polygon
+         fill="black"
+         stroke="black"
+         points="83.0096,-65.5605 90.6957,-72.8527 89.2346,-62.3591 83.0096,-65.5605"
+         id="polygon60" />
+      <text
+         text-anchor="middle"
+         x="86.3319"
+         y="-34.0639"
+         font-family="Times,serif"
+         font-size="8.00"
+         id="text62">d1</text>
+    </g>
+  </g>
+  <polygon
+     style="fill:#ffffff;stroke:#ffffff"
+     points="131,-184 131,5 -4,5 -4,5 -4,-184 "
+     id="polygon3049"
+     transform="translate(4,184)" />
+  <g
+     id="g3051"
+     class="node"
+     transform="translate(4,184)">
+    <title
+       id="title3053">na1</title>
+    <polygon
+       style="fill:none;stroke:#000000"
+       points="72,-144 126,-144 126,-180 126,-180 72,-180 "
+       id="polygon3055" />
+    <text
+       style="font-size:14px;text-anchor:middle;font-family:'Times,serif'"
+       x="99"
+       y="-158.3"
+       font-size="14.00"
+       id="text3057">a1</text>
+  </g>
+  <g
+     id="g3059"
+     class="node"
+     transform="translate(4,184)">
+    <title
+       id="title3061">na2</title>
+    <polygon
+       style="fill:none;stroke:#000000"
+       points="0,-72 54,-72 54,-108 54,-108 0,-108 "
+       id="polygon3063" />
+    <text
+       style="font-size:14px;text-anchor:middle;font-family:'Times,serif'"
+       x="27"
+       y="-86.300003"
+       font-size="14.00"
+       id="text3065">a2</text>
+  </g>
+  <g
+     id="g3067"
+     class="node"
+     transform="translate(4,184)">
+    <title
+       id="title3069">ne1</title>
+    <ellipse
+       style="fill:none;stroke:#000000"
+       sodipodi:ry="18"
+       sodipodi:rx="27"
+       sodipodi:cy="-90"
+       sodipodi:cx="99"
+       cx="99"
+       cy="-90"
+       rx="27"
+       ry="18"
+       id="ellipse3071"
+       d="m 126,-90 c 0,9.941125 -12.08831,18 -27,18 -14.911688,0 -27,-8.058875 -27,-18 0,-9.941125 12.088312,-18 27,-18 14.91169,0 27,8.058875 27,18 z" />
+    <text
+       style="font-size:14px;text-anchor:middle;font-family:'Times,serif'"
+       x="99"
+       y="-86.300003"
+       font-size="14.00"
+       id="text3073">e1</text>
+  </g>
+  <g
+     id="g3075"
+     class="edge"
+     transform="translate(4,184)">
+    <title
+       id="title3077">ne1-&gt;na1</title>
+    <path
+       style="fill:none;stroke:#000000"
+       inkscape:connector-curvature="0"
+       d="m 99,-108.303 c 0,-7.714 0,-16.985 0,-25.585"
+       id="path3079" />
+    <polygon
+       style="fill:#000000;stroke:#000000"
+       points="102.5,-133.896 95.5001,-133.896 95.5001,-133.896 99,-143.896 "
+       id="polygon3081" />
+    <text
+       style="font-size:8px;text-anchor:middle;font-family:'Times,serif'"
+       x="111.99"
+       y="-113.903"
+       font-size="8.00"
+       id="text3083">gen1</text>
+  </g>
+  <g
+     id="g3085"
+     class="node"
+     transform="translate(4,184)">
+    <title
+       id="title3087">ne2</title>
+    <ellipse
+       style="fill:none;stroke:#000000"
+       sodipodi:ry="18"
+       sodipodi:rx="27"
+       sodipodi:cy="-18"
+       sodipodi:cx="63"
+       cx="63"
+       cy="-18"
+       rx="27"
+       ry="18"
+       id="ellipse3089"
+       d="M 90,-18 C 90,-8.0588745 77.911688,0 63,0 48.088312,0 36,-8.0588745 36,-18 c 0,-9.941125 12.088312,-18 27,-18 14.911688,0 27,8.058875 27,18 z" />
+    <text
+       style="font-size:14px;text-anchor:middle;font-family:'Times,serif'"
+       x="63"
+       y="-14.3"
+       font-size="14.00"
+       id="text3091">e2</text>
+  </g>
+  <path
+     id="path3097"
+     d="m 58.6504,148.7646 c -4.1932,-8.1533 -9.3783,-18.2355 -14.1213,-27.458"
+     inkscape:connector-curvature="0"
+     style="fill:none;stroke:#000000" />
+  <polygon
+     id="polygon3099"
+     points="37.2676,-61.3824 35.8066,-71.8761 43.4926,-64.5839 37.2676,-61.3824 "
+     style="fill:#000000;stroke:#000000"
+     transform="translate(4,184)" />
+  <text
+     id="text3101"
+     font-size="8.00"
+     y="137.82219"
+     x="41.748108"
+     style="font-size:8px;text-anchor:middle;font-family:'Times,serif'">gen2</text>
+  <g
+     id="g3217">
+    <path
+       style="fill:none;stroke:#000000"
+       inkscape:connector-curvature="0"
+       d="m 75.3496,148.7646 c 4.3619,-8.4815 9.7973,-19.0502 14.6917,-28.5672"
+       id="path3107" />
+    <polygon
+       transform="translate(4,184)"
+       style="fill:#000000;stroke:#000000"
+       points="83.0096,-65.5605 90.6957,-72.8527 89.2346,-62.3591 83.0096,-65.5605 "
+       id="polygon3109" />
+  </g>
+  <text
+     id="text3111"
+     font-size="8.00"
+     y="123.98488"
+     x="82.222145"
+     style="font-size:8px;text-anchor:middle;font-family:'Times,serif'">d1</text>
+  <g
+     transform="matrix(-1,0,0,-1,179.32753,263.04132)"
+     id="g3217-3">
+    <path
+       style="fill:none;stroke:#000000"
+       inkscape:connector-curvature="0"
+       d="m 75.3496,148.7646 c 4.3619,-8.4815 9.7973,-19.0502 14.6917,-28.5672"
+       id="path3107-6" />
+    <polygon
+       transform="translate(4,184)"
+       style="fill:#000000;stroke:#000000"
+       points="83.0096,-65.5605 90.6957,-72.8527 89.2346,-62.3591 83.0096,-65.5605 "
+       id="polygon3109-6" />
+  </g>
+  <text
+     id="text3111-3"
+     font-size="8.00"
+     y="147.36273"
+     x="99.023315"
+     style="font-size:8px;text-anchor:middle;font-family:'Times,serif'">d2</text>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/model/blog/constraints-blog.html	Mon Sep 10 14:05:54 2012 +0100
@@ -0,0 +1,94 @@
+<html><body>
+
+<p><strong>Note: all links use http://www.w3.org/TR/prov-constraints/</strong>  so most of them don't land in the right place just yet</p>
+
+<h2>Last Call: Constraints of the Provenance Data Model</h2>
+
+<p>On Sept. 11, 2012 the Provenance Working Group has announced Last Call on a new document: <a href="http://www.w3.org/TR/prov-constraints/">PROV-CONSTRAINTS</a> in the suite that defines the core of the PROV family of specifications.</p>
+
+<p>This follows the recent <a href="http://www.w3.org/blog/SW/2012/07/24/last-call-3-working-drafts-for-provenance-interchange/">Last Call announcement for 3 other documents</a>, namely <a href="http://www.w3.org/TR/prov-dm/">PROV-DM<a>, <a href="http://www.w3.org/TR/prov-o/">PROV-O<a>, <a href="http://www.w3.org/TR/prov-n/">PROV-N<a>. The meaning of <em>Last Call</em> is clarified in the earlier announcement. Essentially, it means that the specification document is open to public comments for a set period of time, at the end of which the editors commit to produce the final version of the document, where all such comments are accounted for following internal group discussions.</p>
+
+<p> The <a href="http://www.w3.org/TR/prov-constraints/">PROV-CONSTRAINTS</a> document complements the first three, and is focused on the notion of <em>valid</em> provenance. The intent of provenance validation  is to ensure that a set of PROV statements represents a history of objects and their interactions which is consistent, and thus safe to use for the purpose of logical reasoning and other kinds of analysis.  </p>
+
+<p>Thus, the document can be used to design a validator that can be used to check the consistency of a PROV statements.</p>
+</ul>
+
+<h3>What is in the CONSTRAINTS document?</h3>
+
+<p>Three types of <strong>constraints</strong> are defined.</p>
+
+<ul>
+<li><strong>Uniqueness constraints</strong>. These include key constraints, stating for instance that identifier <code>e</code> is key for statement <code>entity(e,attrs)</code>, but also constraints that state the uniqueness of events such as the generation of an entity by an activity.  <a href="http://www.w3.org/TR/prov-constraints#unique-generation">Constraint 25</a> for example states that only one generation event can be associated to a generated entity and a generating activity:</p>
+
+<code>IF wasGeneratedBy(gen1; e,a,_t1,_attrs1) and wasGeneratedBy(gen2; e,a,_t2,_attrs2), THEN gen1 = gen2.</code></p></li>
+
+<li><strong>Event ordering constraints</strong>. These specify the possible orderings of events (generation, usage, invalidation of entities, start and end of activities) that correspond to a sensible history. For example, an entity should not be used before it is generated (<a href="http://www.w3.org/TR/prov-constraints#generation-precedes-usage">Constraint 39</a>):</p>
+
+<code>IF wasGeneratedBy(gen; e,_a1,_t1,_attrs1) and used(use; _a2,e,_t2,_attrs2) THEN gen precedes use.</code></p>
+
+<li><strong>Impossibility constraints</strong>. These are used to state for example that the same identifier cannot be used in two different relation types (i.e. <code>entity(foo)</code> and <code>activity(foo)</code> is an illegal combination), but also to state property of relations, for example "specialization is irreflexive" (<a href="http://www.w3.org/TR/prov-constraints#impossible-specialization-reflexive">Constraint 54</a>): </p>
+ <code> IF specializationOf(e,e) THEN INVALID.</code></p>
+and "the set of entities and activities are disjoint" (<a href="http://www.w3.org/TR/prov-constraints#entity-activity-disjoint">Constraint 57</a>):</p>
+<code>IF 'entity' &isin; typeOf(id) AND 'activity' &isin; typeOf(id) THEN INVALID.</code></p>
+</ul>
+
+</ul>
+<h3>Example</h3>  
+
+
+<p>We now show an inference process involving ordering constaints, which leads to concluding that <em>all the events involved in the provenance must all be simultaneous</em>. Although logically this is a possibility, this is most likely an indication of some of the statements disrupt the consistency of the entire history.  The example involves a case of <em>mutual derivation</em> of an entity from another. Consider the following statements:</p>
+
+<p>
+<code>entity(e1)</code><br>
+<code>entity(e2)</code><br>
+<code>activity(a1)</code><br>
+<code>activity(a2)</code><br>
+<code>wasGeneratedBy(gen2; e2,a2,t2)</code><br>
+<code>wasGeneratedBy(gen1; e1,a1,t1)</code><br>
+<code>wasDerivedFrom(d1; e2,e1,-,-,-)</code></p>
+
+<p>That is, <code>e2</code> was derived from <code>e1</code>, each of <code>e2</code>, <code>e1</code> being respectively generated by an activity <code>a2</code>, <code>a1</code>, at time <code>t2</code>, <code>t1</code>, as illustrated by the followign figure.</p>
+
+<img src="blog1.svg">
+
+
+
+<p><a href="http://www.w3.org/TR/2012/WD-prov-constraints-20120911/#derivation-generation-generation-ordering">Constraint 44</a> defines the precedence of generation of the second entity over generation of the first entity in the context of derivation:</p>
+
+<code>IF wasDerivedFrom(d; e2,e1,a,g,u,attrs) and wasGeneratedBy(gen1; e1,a1,t1,attrs1) and wasGeneratedBy(gen2; e2,a2,t2,attrs2) THEN gen1 strictly precedes gen2.</code>
+
+
+
+<p>Intuitively,  <code>e1</code> must be generated prior to generating  <code>e2</code>: </p>
+<code>  gen1 strictly precedes gen2.</code></p>
+   
+<p>Suppose we add the following statement to the our set of statements:</p>
+
+<p><code>wasDerivedFrom(d2; e1,e2,-,-,-)</code></p>  
+
+<p>This would form the following overall PROV graph.</p>
+
+<img src="blog2.svg">
+   
+<p> Adding this new statement, however, creates a circular derivation between <code>e1</code> and <code>e2</code>, an invalid situation. We therefore expect that our constraint system be able to tell us something interesting. Indeed, by application of the same <a href="http://www.w3.org/TR/2012/WD-prov-constraints-20120911/#derivation-generation-generation-ordering">Constraint 44</a>, this new statement entails: </p>
+<code>  gen2 strictly precedes gen1.</code></p>
+
+
+<p> Hence, we obtain that <code>  gen2 strictly precedes gen1 strictly precedes gen2</code>, which is impossible.</p>
+
+<h2>Conclusion</h2>
+
+<p>This example was simple and may not have required an automated validator to detect invalidation. However, when graph patterns become more complex, an automated validator turns out to be an essential component for provenance user, whether they intend to publish provenance, or whether they intend to consume it. The prov-constraints document defines a set of constraints that validators are expected to implement.</p>
+
+
+ 
+
+
+
+
+</html></body>
+
+
+
+
+ 
--- a/model/constraints-blog.html	Mon Sep 10 13:55:50 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-<html><body>
-
-<p><strong>Note: all links use http://www.w3.org/TR/prov-constraints/</strong>  so most of them don't land in the right place just yet</p>
-
-<h2>Last Call: Constraints of the Provenance Data Model</h2>
-
-<p>On Sept. 11, 2012 the Provenance Working Group has announced Last Call on a new document: <a href="http://www.w3.org/TR/prov-constraints/">PROV-CONSTRAINTS</a> in the suite that defines the core of the PROV family of specifications.</p>
-
-<p>This follows the recent <a href="http://www.w3.org/blog/SW/2012/07/24/last-call-3-working-drafts-for-provenance-interchange/">Last Call announcement for 3 other documents</a>, namely <a href="http://www.w3.org/TR/prov-dm/">PROV-DM<a>, <a href="http://www.w3.org/TR/prov-o/">PROV-O<a>, <a href="http://www.w3.org/TR/prov-n/">PROV-N<a>. The meaning of <em>Last Call</em> is clarified in the earlier announcement. Essentially, it means that the specification document is open to public comments for a set period of time, at the end of which the editors commit to produce the final version of the document, where all such comments are accounted for following internal group discussions.</p>
-
-<p> The <a href="http://www.w3.org/TR/prov-constraints/">PROV-CONSTRAINTS</a> document complements the first three, and is focused on the notion of <em>valid</em> provenance. The intent of provenance validation  is to ensure that a set of PROV statements represents a history of objects and their interactions which is consistent, and thus safe to use for the purpose of logical reasoning and other kinds of analysis.  </p>
-
-<p>Thus, the document can be used to design a validator that can be used to check the consistency of a PROV statements.</p>
-</ul>
-
-<h3>What is in the CONSTRAINTS document?</h3>
-
-<p>Three types of <strong>constraints</strong> are defined.</p>
-
-<ul>
-<li><strong>Uniqueness constraints</strong>. These include key constraints, stating for instance that identifier <code>e</code> is key for statement <code>entity(e,attrs)</code>, but also constraints that state the uniqueness of events such as the generation of an entity by an activity.  <a href="http://www.w3.org/TR/prov-constraints#unique-generation">Constraint 25</a> for example states that only one generation event can be associated to a generated entity and a generating activity:</p>
-
-<code>IF wasGeneratedBy(gen1; e,a,_t1,_attrs1) and wasGeneratedBy(gen2; e,a,_t2,_attrs2), THEN gen1 = gen2.</code></p></li>
-
-<li><strong>Event ordering constraints</strong>. These specify the possible orderings of events (generation, usage, invalidation of entities, start and end of activities) that correspond to a sensible history. For example, an entity should not be used before it is generated (<a href="http://www.w3.org/TR/prov-constraints#generation-precedes-usage">Constraint 39</a>):</p>
-
-<code>IF wasGeneratedBy(gen; e,_a1,_t1,_attrs1) and used(use; _a2,e,_t2,_attrs2) THEN gen precedes use.</code></p>
-
-<li><strong>Impossibility constraints</strong>. These are used to state for example that the same identifier cannot be used in two different relation types (i.e. <code>entity(foo)</code> and <code>activity(foo)</code> is an illegal combination), but also to state property of relations, for example "specialization is irreflexive" (<a href="http://www.w3.org/TR/prov-constraints#impossible-specialization-reflexive">Constraint 54</a>): </p>
- <code> IF specializationOf(e,e) THEN INVALID.</code></p>
-and "the set of entities and activities are disjoint" (<a href="http://www.w3.org/TR/prov-constraints#entity-activity-disjoint">Constraint 57</a>):</p>
-<code>IF 'entity' &isin; typeOf(id) AND 'activity' &isin; typeOf(id) THEN INVALID.</code></p>
-</ul>
-
-</ul>
-<h3>Example</h3>  
-
-
-<p>We now show an inference process involving ordering constaints, which leads to concluding that <em>all the events involved in the provenance must all be simultaneous</em>. Although logically this is a possibility, this is most likely an indication of some of the statements disrupt the consistency of the entire history.  The example involves a case of <em>mutual derivation</em> of an entity from another. Consider the following statements:</p>
-
-<p>
-<code>entity(e1)</code><br>
-<code>entity(e2)</code><br>
-<code>activity(a1)</code><br>
-<code>activity(a2)</code><br>
-<code>wasGeneratedBy(gen2; e2,a2,t2)</code><br>
-<code>wasGeneratedBy(gen1; e1,a1,t1)</code><br>
-<code>wasDerivedFrom(d1; e2,e1,-,-,-)</code></p>
-
-<p>That is, <code>e2</code> was derived from <code>e1</code>, each of <code>e2</code>, <code>e1</code> being respectively generated by an activity <code>a2</code>, <code>a1</code>, at time <code>t2</code>, <code>t1</code>, as illustrated by the followign figure.</p>
-
-<img src="blog1.png">
-
-
-
-<p><a href="http://www.w3.org/TR/2012/WD-prov-constraints-20120911/#derivation-generation-generation-ordering">Constraint 44</a> defines the precedence of generation of the second entity over generation of the first entity in the context of derivation:</p>
-
-<code>IF wasDerivedFrom(d; e2,e1,a,g,u,attrs) and wasGeneratedBy(gen1; e1,a1,t1,attrs1) and wasGeneratedBy(gen2; e2,a2,t2,attrs2) THEN gen1 strictly precedes gen2.</code>
-
-
-
-<p>Intuitively,  <code>e1</code> must be generated prior to generating  <code>e2</code>: </p>
-<code>  gen1 strictly precedes gen2.</code></p>
-   
-<p>Suppose we add the following statement to the our set of statements:</p>
-
-<p><code>wasDerivedFrom(d2; e1,e2,-,-,-)</code></p>  
-
-<p>This would form the following overall PROV graph.</p>
-
-<img src="blog2.png">
-   
-<p> Adding this new statement, however, creates a circular derivation between <code>e1</code> and <code>e2</code>, an invalid situation. We therefore expect that our constraint system be able to tell us something interesting. Indeed, by application of the same <a href="http://www.w3.org/TR/2012/WD-prov-constraints-20120911/#derivation-generation-generation-ordering">Constraint 44</a>, this new statement entails: </p>
-<code>  gen2 strictly precedes gen1.</code></p>
-
-
-<p> Hence, we obtain that <code>  gen2 strictly precedes gen1 strictly precedes gen2</code>, which is impossible.</p>
-
-<h2>Conclusion</h2>
-
-<p>This example was simple and may not have required an automated validator to detect invalidation. However, when graph patterns become more complex, an automated validator turns out to be an essential component for provenance user, whether they intend to publish provenance, or whether they intend to consume it. The prov-constraints document defines a set of constraints that validators are expected to implement.</p>
-
-
- 
-
-
-
-
-</html></body>
-
-
-
-
-