Add documentation for SPV file format.
[pspp] / doc / dev / spv-structure.eps
diff --git a/doc/dev/spv-structure.eps b/doc/dev/spv-structure.eps
new file mode 100644 (file)
index 0000000..af2e21e
--- /dev/null
@@ -0,0 +1,626 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: graphviz version 2.38.0 (20140413.2041)
+%%Title: spv_structure
+%%Pages: 1
+%%BoundingBox: 36 36 517 487
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+/tapered { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {   % i j npages
+       /npages exch def
+       /j exch def
+       /i exch def
+       /str 10 string def
+       npages 1 gt {
+               gsave
+                       coordfont setfont
+                       0 0 moveto
+                       (\() show i str cvs show (,) show j str cvs show (\)) show
+               grestore
+       } if
+} bind def
+
+/set_font {
+       findfont exch
+       scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {                 % width text
+       /text exch def
+       /width exch def
+       gsave
+               width 0 gt {
+                       [] 0 setdash
+                       text stringwidth pop width exch sub text length div 0 text ashow
+               } if
+       grestore
+} def
+
+/boxprim {                             % xcorner ycorner xsize ysize
+               4 2 roll
+               moveto
+               2 copy
+               exch 0 rlineto
+               0 exch rlineto
+               pop neg 0 rlineto
+               closepath
+} bind def
+
+/ellipse_path {
+       /ry exch def
+       /rx exch def
+       /y exch def
+       /x exch def
+       matrix currentmatrix
+       newpath
+       x y translate
+       rx ry scale
+       0 0 1 0 360 arc
+       setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+       [       % layer color sequence - darkest to lightest
+               [0 0 0]
+               [.2 .8 .8]
+               [.4 .8 .8]
+               [.6 .8 .8]
+               [.8 .8 .8]
+       ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+       layercolorseq curlayer 1 sub layerlen mod get
+       aload pop sethsbcolor
+       /nodecolor {nopcolor} def
+       /edgecolor {nopcolor} def
+       /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+       /myupper exch def
+       /mylower exch def
+       curlayer mylower lt
+       curlayer myupper gt
+       or
+       {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 517 487
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 481 451 boxprim clip newpath
+1 1 set_scale 0 rotate 40 40 translate
+% heading
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+253.65 425 38.19 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+232.15 421.3 moveto 43 (heading) alignedtext
+grestore
+% heading->heading
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 288.31 432.87 moveto
+300.31 432.96 309.99 430.33 309.99 425 curveto
+309.99 421.33 305.41 418.95 298.65 417.84 curveto
+stroke
+0 0 0 edgecolor
+newpath 298.53 414.33 moveto
+288.31 417.13 lineto
+298.04 421.31 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 298.53 414.33 moveto
+288.31 417.13 lineto
+298.04 421.31 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+309.99 421.3 moveto 7 (*) alignedtext
+grestore
+% pageSetup
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+173.65 338 47.39 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+145.15 334.3 moveto 57 (pageSetup) alignedtext
+grestore
+% heading->pageSetup
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 238.6 408.01 moveto
+226.61 395.27 209.63 377.24 196.04 362.8 curveto
+stroke
+0 0 0 edgecolor
+newpath 198.3 360.09 moveto
+188.9 355.21 lineto
+193.2 364.89 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 198.3 360.09 moveto
+188.9 355.21 lineto
+193.2 364.89 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+218.65 377.8 moveto 7 (?) alignedtext
+grestore
+% label
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+269.65 251 27.9 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+256.15 247.3 moveto 27 (label) alignedtext
+grestore
+% heading->label
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 255.24 406.88 moveto
+258.02 377 263.77 315.11 267.11 279.27 curveto
+stroke
+0 0 0 edgecolor
+newpath 270.62 279.33 moveto
+268.06 269.05 lineto
+263.65 278.68 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 270.62 279.33 moveto
+268.06 269.05 lineto
+263.65 278.68 lineto
+closepath stroke
+grestore
+% container
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+325.65 338 43.59 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+300.15 334.3 moveto 51 (container) alignedtext
+grestore
+% heading->container
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 267.19 408.01 moveto
+277.88 395.39 292.97 377.57 305.15 363.2 curveto
+stroke
+0 0 0 edgecolor
+newpath 308.13 365.1 moveto
+311.92 355.21 lineto
+302.78 360.57 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 308.13 365.1 moveto
+311.92 355.21 lineto
+302.78 360.57 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+293.65 377.8 moveto 7 (*) alignedtext
+grestore
+% pageHeader
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+52.65 251 52.79 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+20.15 247.3 moveto 65 (pageHeader) alignedtext
+grestore
+% pageSetup->pageHeader
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 152.01 321.8 moveto
+132.89 308.37 104.8 288.63 83.35 273.57 curveto
+stroke
+0 0 0 edgecolor
+newpath 85.1 270.52 moveto
+74.91 267.64 lineto
+81.08 276.25 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 85.1 270.52 moveto
+74.91 267.64 lineto
+81.08 276.25 lineto
+closepath stroke
+grestore
+% pageFooter
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+173.65 251 50.09 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+143.15 247.3 moveto 61 (pageFooter) alignedtext
+grestore
+% pageSetup->pageFooter
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 173.65 319.8 moveto
+173.65 308.16 173.65 292.55 173.65 279.24 curveto
+stroke
+0 0 0 edgecolor
+newpath 177.15 279.18 moveto
+173.65 269.18 lineto
+170.15 279.18 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 177.15 279.18 moveto
+173.65 269.18 lineto
+170.15 279.18 lineto
+closepath stroke
+grestore
+% container->label
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 314.58 320.21 moveto
+306.37 307.74 295.05 290.56 285.82 276.56 curveto
+stroke
+0 0 0 edgecolor
+newpath 288.54 274.32 moveto
+280.12 267.9 lineto
+282.7 278.17 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 288.54 274.32 moveto
+280.12 267.9 lineto
+282.7 278.17 lineto
+closepath stroke
+grestore
+% table
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+397.65 251 27.9 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+384.15 247.3 moveto 27 (table) alignedtext
+grestore
+% container->table
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 339.53 320.61 moveto
+350.46 307.71 365.83 289.56 378.02 275.17 curveto
+stroke
+0 0 0 edgecolor
+newpath 380.98 277.09 moveto
+384.77 267.2 lineto
+375.64 272.56 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 380.98 277.09 moveto
+384.77 267.2 lineto
+375.64 272.56 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+365.65 290.8 moveto 7 (*) alignedtext
+grestore
+% text
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+281.65 91 27 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+271.15 87.3 moveto 21 (text) alignedtext
+grestore
+% container->text
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 322.55 319.77 moveto
+315.01 277.78 295.63 169.86 286.52 119.12 curveto
+stroke
+0 0 0 edgecolor
+newpath 289.95 118.43 moveto
+284.74 109.21 lineto
+283.06 119.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 289.95 118.43 moveto
+284.74 109.21 lineto
+283.06 119.67 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+302.65 203.8 moveto 7 (*) alignedtext
+grestore
+% tableStructure
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+413.65 164 59.59 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+375.65 160.3 moveto 76 (tableStructure) alignedtext
+grestore
+% table->tableStructure
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 400.88 232.8 moveto
+403.07 221.16 406.01 205.55 408.52 192.24 curveto
+stroke
+0 0 0 edgecolor
+newpath 412 192.65 moveto
+410.41 182.18 lineto
+405.12 191.36 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 412 192.65 moveto
+410.41 182.18 lineto
+405.12 191.36 lineto
+closepath stroke
+grestore
+% html
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+281.65 18 27.1 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+268.65 14.3 moveto 26 (html) alignedtext
+grestore
+% text->html
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 281.65 72.81 moveto
+281.65 64.79 281.65 55.05 281.65 46.07 curveto
+stroke
+0 0 0 edgecolor
+newpath 285.15 46.03 moveto
+281.65 36.03 lineto
+278.15 46.03 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 285.15 46.03 moveto
+281.65 36.03 lineto
+278.15 46.03 lineto
+closepath stroke
+grestore
+% dataPath
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+413.65 91 40.89 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+390.15 87.3 moveto 47 (dataPath) alignedtext
+grestore
+% tableStructure->dataPath
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 413.65 145.81 moveto
+413.65 137.79 413.65 128.05 413.65 119.07 curveto
+stroke
+0 0 0 edgecolor
+newpath 417.15 119.03 moveto
+413.65 109.03 lineto
+410.15 119.03 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 417.15 119.03 moveto
+413.65 109.03 lineto
+410.15 119.03 lineto
+closepath stroke
+grestore
+% pageParagraph
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+173.65 164 63.09 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+133.15 160.3 moveto 81 (pageParagraph) alignedtext
+grestore
+% pageHeader->pageParagraph
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 74.56 234.61 moveto
+93.59 221.24 121.37 201.72 142.68 186.75 curveto
+stroke
+0 0 0 edgecolor
+newpath 144.9 189.47 moveto
+151.08 180.85 lineto
+140.88 183.74 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 144.9 189.47 moveto
+151.08 180.85 lineto
+140.88 183.74 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+120.65 203.8 moveto 7 (*) alignedtext
+grestore
+% pageFooter->pageParagraph
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 173.65 232.8 moveto
+173.65 221.16 173.65 205.55 173.65 192.24 curveto
+stroke
+0 0 0 edgecolor
+newpath 177.15 192.18 moveto
+173.65 182.18 lineto
+170.15 192.18 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 177.15 192.18 moveto
+173.65 182.18 lineto
+170.15 192.18 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+173.65 203.8 moveto 7 (*) alignedtext
+grestore
+% pageParagraph->text
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 197.61 147.24 moveto
+214.44 136.18 236.98 121.37 254.47 109.86 curveto
+stroke
+0 0 0 edgecolor
+newpath 256.67 112.61 moveto
+263.11 104.19 lineto
+252.83 106.76 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 256.67 112.61 moveto
+263.11 104.19 lineto
+252.83 106.76 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF