%!PS-Adobe-3.0
%%Title: (Final.wn.pb)
%%Creator: (WriteNow: LaserWriter 8 8.1.1)
%%CreationDate: (9:13 PM Tuesday, November 14, 1995)
%%For: ()
%%Pages: 32
%%DocumentFonts: Times-Roman Times-Bold Times-Italic Symbol ZapfChancery-MediumItalic Helvetica Helvetica-Oblique Courier
%%DocumentNeededFonts: Times-Roman Times-Bold Times-Italic Symbol ZapfChancery-MediumItalic Helvetica Helvetica-Oblique Courier
%%DocumentSuppliedFonts:
%%DocumentData: Clean7Bit
%%PageOrder: Ascend
%%Orientation: Portrait
%ADO_PaperArea: -31 -30 761 582
%ADO_ImageableArea: 0 0 730 552
%%EndComments
/md 263 dict def md begin
/currentpacking where {pop /sc_oldpacking currentpacking def true setpacking}if
%%BeginFile: adobe_psp_basic
%%Copyright: Copyright 1990-1993 Adobe Systems Incorporated. All Rights Reserved.
/bd{bind def}bind def
/xdf{exch def}bd
/xs{exch store}bd
/ld{load def}bd
/Z{0 def}bd
/T/true
/F/false
/:L/lineto
/lw/setlinewidth
/:M/moveto
/rl/rlineto
/rm/rmoveto
/:C/curveto
/:T/translate
/:K/closepath
/:mf/makefont
/gS/gsave
/gR/grestore
/np/newpath
14{ld}repeat
/$m matrix def
/av 81 def
/por true def
/normland false def
/psb-nosave{}bd
/pse-nosave{}bd
/us Z
/psb{/us save store}bd
/pse{us restore}bd
/level2
/languagelevel where
{
pop languagelevel 2 ge
}{
false
}ifelse
def
/featurecleanup
{
stopped
cleartomark
countdictstack exch sub dup 0 gt
{
{end}repeat
}{
pop
}ifelse
}bd
/noload Z
/startnoload
{
{/noload save store}if
}bd
/endnoload
{
{noload restore}if
}bd
level2 startnoload
/setjob
{
statusdict/jobname 3 -1 roll put
}bd
/setcopies
{
userdict/#copies 3 -1 roll put
}bd
level2 endnoload level2 not startnoload
/setjob
{
1 dict begin/JobName xdf currentdict end setuserparams
}bd
/setcopies
{
1 dict begin/NumCopies xdf currentdict end setpagedevice
}bd
level2 not endnoload
/pm Z
/mT Z
/sD Z
/realshowpage Z
/initializepage
{
/pm save store mT concat
}bd
/endp
{
pm restore showpage
}def
/$c/DeviceRGB def
/rectclip where
{
pop/rC/rectclip ld
}{
/rC
{
np 4 2 roll
:M
1 index 0 rl
0 exch rl
neg 0 rl
:K
clip np
}bd
}ifelse
/rectfill where
{
pop/rF/rectfill ld
}{
/rF
{
gS
np
4 2 roll
:M
1 index 0 rl
0 exch rl
neg 0 rl
fill
gR
}bd
}ifelse
/rectstroke where
{
pop/rS/rectstroke ld
}{
/rS
{
gS
np
4 2 roll
:M
1 index 0 rl
0 exch rl
neg 0 rl
:K
stroke
gR
}bd
}ifelse
%%EndFile
%%BeginFile: adobe_psp_colorspace_level1
%%Copyright: Copyright 1991-1993 Adobe Systems Incorporated. All Rights Reserved.
/G/setgray ld
/:F/setrgbcolor ld
%%EndFile
level2 startnoload
%%BeginFile: adobe_psp_patterns_level1
%%Copyright: Copyright 1991-1993 Adobe Systems Incorporated. All Rights Reserved.
/patfreq Z
/patangle Z
/bk Z
/fg Z
/docolorscreen Z
/graystring Z
/pattransf{}def
/initQDpatterns
{
/patfreq 9.375 store
/patangle
1 0 $m defaultmatrix dtransform
exch atan
por not
{90 add}if
normland{180 add}if
store
:a
}def
/docolorscreen
/setcolorscreen where
{
pop/currentcolorscreen where
{
pop/setcmykcolor where
{
pop true
}{
false
}ifelse
}{
false
}ifelse
}{
false
}ifelse
def
/setgraypattern
{
/graystring xs
patfreq
patangle
{
1 add
4 mul
cvi
graystring
exch get
exch
1 add 4 mul
cvi
7 sub
bitshift
1 and
}setscreen
64 div setgray
}bd
/:b
{
/pattransf load settransfer
pop pop pop
setgraypattern
}bd
docolorscreen startnoload
/screensave 5 array def
/:a{currentgray currentscreen currenttransfer screensave astore pop}bd
/:e{screensave aload pop settransfer setscreen setgray}bd
/:d
{
pop pop pop
/pattransf load settransfer
setgraypattern 8{pop}repeat
}bd
/:c
/:d ld
docolorscreen endnoload docolorscreen not startnoload
/screensave 20 array def
/:a{currentcmykcolor currentcolorscreen currentcolortransfer screensave astore pop}bd
/:e{screensave aload pop setcolortransfer setcolorscreen setcmykcolor}bd
/rstring Z
/grstring Z
/blstring Z
/convroll{64 div 4 -1 roll}bd
/setcolorpattern
{
/graystring xs
/blstring xs
/grstring xs
/rstring xs
patfreq
patangle
{
1 add 4 mul cvi rstring
exch get exch 1 add 4 mul
cvi 7 sub bitshift 1 and
}
patfreq
patangle
{
1 add 4 mul cvi grstring
exch get exch 1 add 4 mul
cvi 7 sub bitshift 1 and
}
patfreq
patangle
{
1 add 4 mul cvi blstring
exch get exch 1 add 4 mul
cvi 7 sub bitshift 1 and
}
patfreq
patangle
{
1 add 4 mul cvi graystring
exch get exch 1 add 4 mul
cvi 7 sub bitshift 1 and
}
setcolorscreen
convroll convroll convroll convroll
setcmykcolor
}bd
/:d
{
pop pop pop
/pattransf load settransfer
pop pop setcolorpattern
}bd
/:c
/:d ld
docolorscreen not endnoload
%%EndFile
level2 endnoload level2 not startnoload
%%BeginFile: adobe_psp_patterns_level2
%%Copyright: Copyright 1990-1993 Adobe Systems Incorporated. All Rights Reserved.
/pmtx Z
/BGnd Z
/FGnd Z
/PaintData Z
/PatternMtx Z
/PatHeight Z
/PatWidth Z
/$d Z
/savecolor 4 array def
/savecolorspace Z
/:a{
mark 0 0 0 currentcolor savecolor astore pop cleartomark
/savecolorspace currentcolorspace store
}bd
/:e{
savecolorspace setcolorspace
mark savecolor aload pop setcolor cleartomark
}bd
/initQDpatterns
{
gS
initmatrix
mT dup 4 get exch 5 get :T
1 0 dtransform round exch round exch idtransform
dup mul exch dup mul exch add sqrt
0 1 dtransform round exch round exch idtransform
dup mul exch dup mul exch add sqrt
neg
scale
0
por not{90 add}if
normland{180 add}if
rotate
matrix currentmatrix
gR
/pmtx xs
:a
}bd
/:t
{
14 dict begin
/BGnd xdf
/FGnd xdf
/PaintData xdf
/PatternType 1 def
/PaintType 1 def
/BBox[0 0 1 1]def
/TilingType 1 def
/XStep 1 def
/YStep 1 def
/PatternMtx[24 0 0 24 0 0]def
/PaintProc
BGnd null ne
{
{
begin
BGnd aload pop :F
0 0 1 1 rF
FGnd aload pop :F
24 24 true PatternMtx PaintData imagemask
end
}
}{
{
begin
FGnd aload pop :F
24 24 true PatternMtx PaintData imagemask
end
}
}ifelse
def
currentdict
PatternMtx
end
gS $c setcolorspace pmtx setmatrix makepattern gR
}bd
/:u
{
14 dict begin
/$d 8 dict def
/PatternType 1 def
/PaintType 1 def
/BBox[0 0 1 1]def
/TilingType 1 def
/XStep 1 def
/YStep 1 def
/PaintData xdf
/PatHeight xdf
/PatWidth xdf
/PatternMtx[PatWidth 0 0 PatHeight 0 0]def
$d begin
/ImageType 1 def
/MultipleDataSource false def
/Height PatHeight def
/Width PatWidth def
/Decode[0 1 0 1 0 1]def
/ImageMatrix PatternMtx def
/DataSource PaintData def
/BitsPerComponent 8 def
end
/PaintProc
{
begin
$d image
end
}def
currentdict
PatternMtx
end
gS $c setcolorspace pmtx setmatrix makepattern gR
}bd
/bk[1 1 1]def
/fg[0 0 0]def
/:b{
:t
setpattern
pop pop
}bd
/:d{
:t
setpattern
10{pop}repeat
}bd
/:c{
:u
setpattern
10{pop}repeat
}bd
%%EndFile
level2 not endnoload
level2 startnoload
%%BeginFile: adobe_psp_level1_basicimages
%%Copyright: Copyright 1990-1993 Adobe Systems Incorporated. All Rights Reserved.
/$i false def
/flipinvert
statusdict begin
version cvr 47.0 lt
end
def
/iw Z
/ih Z
/im_save Z
/setupimageproc Z
/polarity Z
/smoothflag Z
/$z Z
/bpc Z
/smooth_moredata Z
/datatype Z
/:f
{
/im_save save store
/datatype xs
$i flipinvert
and
xor
/polarity xs
/smoothflag xs
:T
scale
/$z exch string store
/bpc xs
/ih xs
/iw xs
/smoothflag
smoothflag
bpc 1 eq and
smoothflag and
userdict/sc_smooth known and
vmstatus pop exch pop iw 3 mul sub 1000 gt and
iw 4 mul 7 add 8 idiv 4 mul 65535 le and
store
smoothflag{
iw
ih
$z
iw 7 add 8 idiv 4 mul string
iw 4 mul 7 add 8 idiv 4 mul string
true
false
sc_initsmooth
/iw iw 4 mul store
/ih ih 4 mul store
}if
/setupimageproc datatype 0 eq datatype 1 eq or{
smoothflag{
{
[
/smooth_moredata cvx[
currentfile
$z
{readstring readhexstring}datatype get
/pop cvx
]cvx[
$z
]cvx/ifelse cvx
/sc_smooth cvx
/smooth_moredata/exch cvx/store cvx
]cvx bind
/smooth_moredata true store
dup exec pop dup exec pop
}
}{
{
[
currentfile
$z
{readstring readhexstring}datatype get
/pop cvx
]cvx bind
}
}ifelse
}{
(error, can't use level2 data acquisition procs for level1)print flush stop
}ifelse
store
}bd
/:j{im_save restore}bd
/:g
{
1 setgray
0 0 1 1 rF
0 setgray
iw ih polarity[iw 0 0 ih 0 0]setupimageproc
imagemask
}bd
/:h
{
setrgbcolor
0 0 1 1 rF
setrgbcolor
iw ih polarity[iw 0 0 ih 0 0]setupimageproc
imagemask
}bd
/:i
{
setrgbcolor
iw ih polarity[iw 0 0 ih 0 0]setupimageproc
imagemask
}bd
%%EndFile
level2 endnoload level2 not startnoload
%%BeginFile: adobe_psp_level2_basicimage
%%Copyright: Copyright 1990-1993 Adobe Systems Incorporated. All Rights Reserved.
/$j 9 dict dup
begin
/ImageType 1 def
/MultipleDataSource false def
end
def
/im_save Z
/setupimageproc Z
/polarity Z
/smoothflag Z
/bpc Z
/ih Z
/iw Z
/datatype Z
/:f
{
/im_save save store
/datatype xs
datatype 0 lt datatype 4 gt or{
(error, datatype out of range)print flush stop
}if
/setupimageproc{
{
currentfile
}
{
currentfile 0(%ADOeod)/SubFileDecode filter/ASCIIHexDecode filter
}
{
currentfile/RunLengthDecode filter
}
{
currentfile/ASCII85Decode filter/RunLengthDecode filter
}
{
currentfile/ASCII85Decode filter
}
}datatype get store
{
[1 0]
}{
[0 1]
}ifelse
/polarity xs
/smoothflag xs
:T
scale
pop
/bpc xs
/ih xs
/iw xs
$c setcolorspace
}bd
/:j{im_save restore}bd
/:g
{
1 G
0 0 1 1 rF
0 G
$j dup begin
/Width iw def
/Height ih def
/Decode polarity def
/ImageMatrix[iw 0 0 ih 0 0]def
/DataSource setupimageproc def
/BitsPerComponent 1 def
/Interpolate smoothflag def
end
imagemask
}bd
/:h
{
:F
0 0 1 1 rF
:F
$j dup begin
/Width iw def
/Height ih def
/Decode polarity def
/ImageMatrix[iw 0 0 ih 0 0]def
/DataSource setupimageproc def
/BitsPerComponent 1 def
/Interpolate smoothflag def
end
imagemask
}bd
/:i
{
:F
$j dup begin
/Width iw def
/Height ih def
/Decode polarity def
/ImageMatrix[iw 0 0 ih 0 0]def
/DataSource setupimageproc def
/BitsPerComponent 1 def
/Interpolate smoothflag def
end
imagemask
}bd
%%EndFile
level2 not endnoload
%%BeginFile: adobe_psp_smooth
%%Copyright: Copyright 1991-1993 Adobe Systems Incorporated. All Rights Reserved.
/junk Z
/$z Z
userdict/sc_smooth known not
save
systemdict/eexec known
systemdict/cexec known and{
countdictstack mark
false
<1861AEDAE118A9F95F1629C0137F8FE656811DD93DFBEA65E947502E78BA12284B8A58EF0A3
2E272778DAA2ABEC72A84102D591E11D96BA61F57877B895A752D9BEAAC3DFD7D3220E2BDE7
C036467464E0E836748F1DE7AB6216866F130CE7CFCEC8CE050B870C11881EE3E9D70919>
{eexec}stopped{
cleartomark
countdictstack exch sub dup 0 gt{{end}repeat}{pop}ifelse
false
}{
{cleartomark pop true}{cleartomark pop false}ifelse
}ifelse
}{false}ifelse
exch restore and
level2 not and
vmstatus exch sub exch pop 15000 gt and
{
currentfile eexec
}{
/junk save store
/$z 4795 string store
currentfile $z readhexstring pop pop
{
currentfile $z readline not
{
stop
}if
(%ADOendeexec)eq
{
exit
}if
}bind loop
junk restore
}ifelse
bc89dd93a62e673f17beaf79fc308801f2548cc0804b6e7e7211db7d71dcacee61d4db4b
cc4c192da6ec1c558421396b4eb1944f656db0dda1626374294528747cd1ee8e10b15c5c
60b4182960a4687e44c92cff1b5d29a6b48ab8be9f8115c642241a4901d75a2b2ba55d27
0620b884f37689503d9c3a603e89a1f7de7447e2b23145af7219c13aad065fe60313c4f1
7d1959166b8493e26ee828d6e76ac472747b40432571d2d101dd3e8696849eb59b70c328
a0d1978eea220593cb3024a3cdecb89dcfa2d5ab3990b0bbc1a0c3351bfbd614917e7ede
ef79cb8843325e4a81a80e809250ce8cf7297b5c684b53a56538b373cb085ec7436f82a2
e48b4789de5ac368defd97ca81e1e7a584b7e40bcf852c3d4f6cc387172784295be04ca2
0793987d64efc3cec658553cbe610fa9ebfe74341192cfcc6ecfd0a4843b740cbfd5ba5f
4c076050268792190676f76cacc26be628f8ae1c48419803c2a5108f6b1bec6664b06248
6a083d8092cb3c82b90bded3eed0387490fe971d6614c5d0259a846d43abb22e0dc06aa5
6911c9f53cf5524e138662db3fa2e6cdfe30873d916ed70e4962ed78b32491bee9a20a36
8be439dc6245d5751e6899e2214c07df7a87b66b1aba9a8196db2add3d3c4e3057dc9a9c
dae1cc7884a6f29a5568b1ad64143fd479b8b4a8fbef4db889fe42edaadef0276f79d192
245b64299ad347b03ecf887db96b16fc319a1c7e59718ac7ff7bc7bafd4523bd88fd5ba8
1730817c2f529d3060cb591fe565d778fc989e7e14f7c2a7b85785c53af35fbe738da838
cdf80c9a048f4d7dbd58e2c9f527d2d3b2ad633da1005036298ec8533b94f84e9246289c
f03336f4a7f657afbcbdd7b5e16187273c459f5626a5667db4fbf8b85ef2363ee6d89bd0
f402408cae3065fecf609fa290047e9656d853739f33b06d64a4a57f66f37f7da39fa89d
28962fddb76e8d05683c090664175dda6a1be57698894fd9f0f9d8da411b3f33b3b9c8d4
50a27c37e4a0e503418cd6c02cf60fa7fbb6f6f3e7509a45a54343ba3361168d895a27eb
6923ab65b019b188fe21c804629f2be2a20e6417841b4c8d5d68fb38db71ac7174e68d03
0611ea29f9ca740d0aef611a1f0003e1d136a539ed28d956a2a36bc7ae0ee290bd818175
3537e39be7777de1004964c769ec7e933b17c852cbd2da4cc100d9d3e141106eea9cc29a
b1c910ead768527a02711ac035262c93a4548f67fb501a971e0a86d819547bac7c09f5fb
aec454c9c7276f5e317cc8fd8876e7f90dc128f03052a756cf6db9876fe5a31c9d6a139b
d46eb34272ff7992b86c88420ab07e801a39e91afb3c048b40913dc2d984e0c347b3daea
4e1ce5a15c8df7b65a0b89136f6a48a92b8f096d708a2bea4390f0454dcc3d9cd4f6b24d
8f06faa17694172213c481ceaa1f7fe33f1389142f017874560e1b0272385585fc5681de
4a909566cdcf9af80dfde23e9ad55083bb9422ae57b99bf3d5f081a4cbe0172f236abbb5
06fbbee46987543fc545e81ecd61477fadec55640ce9e41f8cbcd409f0e64c1b83193885
dffe0c4c383de781943a2a73ad1e0cbee0dccdbc3bbbc010f3adc8aa597210cae47003d2
952b8e874e1dee33ef1a78180a3ef6b22e1a66385147f550678510b15ed1a02fc85e736e
818f03b188d6a23f070e5720195a8e4c295d27129a5adedc1a95145d5e758649acebaec5
3d14cbc9feaf3abcecc976c03d00ea640c3b852baad7d8ab28c593cb74cbe2e98ea0b35c
8827eb3def1a79af837fb8468b2042acaf226b1f6d11abab2884f3fe49772325d273f893
82badc7b3b26e43c3f6170eec2c607cbe22225b9469de5509d31bafa1729c416089aeb1b
3b5477a985acdce47557bf29130d6232d2003a4314bf46c9c9383c437f1f2597f361405a
b92f371458f13d8d400d78140df094a559bec9d240993f2d811f0d4eba7678773bb6c765
caf33bc77c0e2e156538b04423e513cb933d9ac8cec0444e0309bdb5c70f02a71f49cc99
7b8d98ecbaad1d53daa2811b07df94b2ec574326d760892fd1886703eed816bf2db96bbe
f2ea914cef918d251a1203d93d549aa438a1309ce179c233111175d9e8bb6064dc2d52db
0976650b1d5d194eab20ed3e500db4410852390e69e56e4ab71e97a87680fa620d8d32d5
b93e40cdec16ed20af734e792ddb938b8a65ccb811f369cc1e9e8819e76d7908e310e5ea
018c05d2db74abc0e8e5da75431324a3ba298820009d6fcc9d5693ec900aab8745112928
ef24a8da713dc8ecebb84394f0058335dafb459971cf20e8c15d40f35643a0c56c95bd86
faefe8e251fb9f79a6db5e481032f812454181a73375ab1efe575d745fe7073adaf60865
e992c7f5e969f4e267b323bb022a7f8b1b480a97ca735212b4d47aff196f37fa177c765a
f03487b323f2ce11314906d04dcb0c3c770ea581fcff70cc1553b4615a6d8dfd69001581
77a9fcc035cb44d630b99cdae09de33c09c9ab8bcc021e72fd88cccf3a9cd578a34a3f96
ae636047fc5f468d22cea0cf509e1588563c7e25d4f0d41b30373dfd1cb69a8e37a51a57
5d1cab7a3c9d04f3d388db04ed78d3e81e7b53dffa94507df197e467565d4169fc996e46
671f62236b00f4e9dc36bd3709400771ed4b335bcdb3c2974c0a00c03717ed980e98dc1b
2473f38bd1e1fe4da0fea5169aa1e06054315579a5898bbe3c9fabb829485562e9d25248
142575f3bfd311dde2297c7883b0b9ed0c3ffe3358880c8c77be01cd6408dc743634006f
d888ffc1e4562ed1166bbdcbe971a269afae52a8a384eaf8880433a053bd072accc62214
04bb18e98b9cebb3c05e56216b56174bd432e41b8c82c82d7114adb16ad941fe87c0657e
03203fc26ed43096e7e262a8f86fc07506b3ffcb5888bcbd3482977716a337a54c0649c1
2579b4322afcb34486a5593fb9d58cb16a0368f593c3c52608bf31c6a3b48a04be605c60
b15ea2670c3e89d293ba065db7d5471d3f56d7ffe3ba48814d5a1f4a81d9865d1f2340cc
3e5ced23ce6827065312bb9ae13e0d3cc53e79aaa764a229be203d1b45963d17e983f72a
f97bac50984a360768f459585745d94f7b77457bb8bc802332aef4e65ae7200d94750aea
b4ede71ade6ee000cf122866f514747784f7e497a6e48b82467515f474d38ec690bac331
d8246eacf2b10d7f1b1b74b1020843b3d934115e23fc1845e5161f5d494badc22f5e68fa
4d1cb3933ac6467e3cc58099adcf4832c156ce1714ee44c6368dee76483e47260dda3af1
97f938530475ede86f1b7ccfeeaeab2518f1c05ba983ada09c069d0f5e7e34c7832ec4c1
9e68e78a51e25540cadf7b64d1eca1141816aba211cea9b8aa4ff9542f26cd6adabe28bc
03c20d2fded392cc160e5ca6f8216611e41b504567927a560537a57e09dd8db552fab25d
59318ad3f7e6b6e10ad49fbb4caf8d5205d494666f5c51a599df65d2c89fe65c92ec733d
78205e987659e02d244684cff18d2b6f1d0d33ccae32339b840246a50cccebc952c7e705
d30fcb5dc94da2eab7ba3c7f9fe536eba4971a8b8e0744a0a094d531ae611042c347fac7
3b770c445121464594a2c5eb9d923f0fe2f33500b403e4b5daf64acd4a4a89d8469be57f
a393a844e082dec5af117b77e7be0eb6474eb47b00503bc68c809f0de147f7d0f1f68798
89b1781d09c0dc12c882dba17e23de1311321fa851a94c51a8801a4bf7c888e4805b1fc8
2fe638aaabb33b13ab0ae024b0b767108a068d562ebd11a91ad8706df9360a914927b752
ddb4d176f72661d12a6349a58a8d688b311ec8e1797b011dbb47760765b88a651b42cace
e60730553040e64711fff10e3285171ed1dae0545b6cfe3503b24f9d135d04d467372b11
ef3c1b9aa7c4272e281df0b6e7cc7e7984b00cbda5bbd81c939213c32176b5e062660e54
8943afe1e39a38cb171d7591c01ac4eea3963572ce008d48727ec8efc0ead1cc4c86d9ce
3d9d5c21f58a41359f2599d4cb15762366c3d3c5b7abe7970a312ea2fb14f5e74f78284a
624fe71f362f4b4d892ac6a87cf8794982964aa0e6153477da1484d35787edb8a2aad90b
3cada91934c118098617e1254d834d86154e6585628663741ae0d7bf339b168d4acec9da
94c12bd5449ecf97a7483e27c47160f838ac076f79b82fc0bd8a3b0011bd0bbb2e6a38ff
a7a63daf463cacb10f56c459bec699ecbcc52be2e5c57bd013c4682b01199cdd89ad2bd1
8584b05e6178c2d6fdc6e19a375ae4a91428d4c0aff2d07e5b6d159351475e57419f2ec8
a343d209e36ddb078027e03d4f179fbf675373c485be1a147ffda00821aba79187471ef9
55f197d6bf0f442244d5b4d1e8392ba11965b6bfa8db30c0e48984883a9b6ec840a9b6fc
93df40c82906dac253e0afd633c336cedac8dd7213e4766761ec3cf3a8aacb1fe1bf2d61
d64c5addaf1d836e199df0ef5e61029f1e6a28c17eba0d8bdf81f358058086ee365b4127
a1bb4b273b84a825fdcc4ebd3abdd7ca243788e1eb48aed96626bd2f2ef8a2e1a082acb6
64b5af60797d9ad021ac616e4d65c1ddbc4a74928b7ab089a10db9312a18d682cccce0b5
53e2f454af0ca21f59b96ee7d71a97db2607dba56daad1bef91c66c44f6fc53d2b4bfebb
876cd478243a9454e8864f65067787b96cb4b3f92a7c90f959ce3324c94590348a8d2709
f4feea7adaf4c56199da203d8f4b9866fe7362d86401b0cfe1913476eb9f7f4d4df0f2f3
8e7ee153c99dda1ccc6eec2cd1b76c52c553ceca04ad525fc17a4a7af197d158c02e6469
cd7e3be4b934ed0e1499153bb98b4363159a60c9ce892af085511cfc31cfa7fa1baf0e22
d138b6a54e93532486b633024d18afd6a610ede93b2a554abc44da890144ff060d1db1e3
e57df15229afe56c49e3c7f68e6ef0221942945f3c6675b498e94fd834bfcd869bba0a90
179d3eb859ea6b749871a62c0e8513ab69b63e35b5bf8060f25442a6670293cee9a86928
997a54929695b3eda64483ecdf8cfb2732729a652e08a3aa82ecb5ac45aad7227f7f7ee9
1d8c222933cfac18561f27939ca29fbf5eebd634555856519cd2f1573281514aff3c6091
5142196c57177ef2086958fbb3fae8f448118c435ae82b7b17a8445e0806b8442e1f9347
c7940af7342dc3d5638958f9a3952768f6c244920e281a163cc87fbdbec99080b8d7e24b
9e35e152aa600a6a4faebb140857e536bb819f4cd9992b9dfaa60ac33a8ff2ed14c791e7
0290e5f6d810488d672224bfeeca6907b41f46489091322b6830a8424fa2a0061151ee61
ef1cfb1a83c4538025605554ed3c734fd8e39bd6da4af6e5a57593da83fd9f511af49b84
5ef7cb34495b54070ea204daff2e266f5a1619928e73de256979f4afdeb42b889064461b
f7263f82a2c233d113de9ba4bc415ed68241bc3862a34050479aa86eabb80cef561ad640
80be73a5da7fbb4905bee2fbbbc7c85a5512c6e747a5eb18942e47c17e5da1127910d8e6
ed7a37d3b846cfda6b0adc8dd594ffe14995b32babcb4d99869090abd57e8ab397e33406
2c7790b673d184738a9e9d578f54ccfcdcc46200d2bb07c5dea46261680dccb4f011428f
289c2049ff81040685aec9ae8c9016c491d02f14f2c4fd79e053147520d59d034c470569
e602c662af4aafc5d2fb0d3af218b26b769ac25fe9999ba3c2eaa8a9ffa93a6f4b743608
f5797772e53cfd2f3c6a45b1a843fcfc6aedc66bc35db923bea051301fa5a959a11eb0b6
f02f7c4e6b004ce548b77e032e36f93cce55f507d5892b32da81a7ce5016326aacd06dd5
0a1b3c615abf06ab6eb1bd643f3c3d7fbc9e18bc11ee29b2113d5c458f20713d3b811da8
883f8b95557ffb1eaf229b89fc98f7623ff9140bcebc6b8677ad7d99373e5757292a3d6a
83a5c053e61224b4dc14e42626637e714c514092e569101ce75f0533605802455f03bf0e
336c0f9788569f3b2b4b79c01628abc3b243decb3c55e1273ff7b83ae61d936bd413580f
3f279437da1fdad63d785ff7bedd815a6d6e4964231adf28640794c33a30686e5f60fe78
c5e87ffd27a84452dc111bbd7c2d0b4e7781c102547f5533ea676a33b8d58918f197a8cd
a1e90be9620e43af9d5b07ee2ae5d702683c9a6973fdaafaec74d62cb29b18272b3f8840
a1a8372ddf4bfee1b7ea037ed41fdc2cb1cb4da3ccb3e121354db0d5bc83c4d4c323083d
75dd32c20607f81fcd221751c5af21775659e804b9941cf6fbe4c8846be20e546f88a588
7bbff8cab4489883fdd2be613313174c015d69eee40eee4242e173aaac87585597feff69
a64f4ef2dbf00dbfe9ad946892816711c7199d4068d8494ba1df614d9bbe1c7b63996e98
12b913966a42a41be0dc85feff232e625f4dd0b01cb7674b232e89d5da143f9d12a9d8a9
aa8b62038721ad9e4a6438cb842d1828458fc25e5b0b6ea795f7a14d2f55f1451c615f4c
211469611d1348952e655e1d93188c0dc6dd719630a42fe5baf8cde0c03b1e0aa76a2cd4
fec86a3042f8a2ea5af50a43af52c1217f6be45b152e47d165b89a54ede432f1eb3ed3ef
428c228dd53c44db15541704b99413b465ff65ca0e9d6be932a18eca713c71ba7dc89238
1e0c2c62cf8567df2f997e58ed2c1ffe17d2fc96db942ce3950e28d1287b85ff7d07adb9
059629dc89b9b0ed2213e45d8a20188cae18f3391887387bf8ba0a12fe21fa0aa521bfa3
718f7abe76388e
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%ADOendeexec
%%EndFile
%%BeginFile: adobe_psp_uniform_graphics
%%Copyright: Copyright 1990-1993 Adobe Systems Incorporated. All Rights Reserved.
/@a
{
np :M 0 rl :L 0 exch rl 0 rl :L fill
}bd
/@b
{
np :M 0 rl 0 exch rl :L 0 rl 0 exch rl fill
}bd
/arct where
{
pop
}{
/arct
{
arcto pop pop pop pop
}bd
}ifelse
/x1 Z
/x2 Z
/y1 Z
/y2 Z
/rad Z
/@q
{
/rad xs
/y2 xs
/x2 xs
/y1 xs
/x1 xs
np
x2 x1 add 2 div y1 :M
x2 y1 x2 y2 rad arct
x2 y2 x1 y2 rad arct
x1 y2 x1 y1 rad arct
x1 y1 x2 y1 rad arct
fill
}bd
/@s
{
/rad xs
/y2 xs
/x2 xs
/y1 xs
/x1 xs
np
x2 x1 add 2 div y1 :M
x2 y1 x2 y2 rad arct
x2 y2 x1 y2 rad arct
x1 y2 x1 y1 rad arct
x1 y1 x2 y1 rad arct
:K
stroke
}bd
/@i
{
np 0 360 arc fill
}bd
/@j
{
gS
np
:T
scale
0 0 .5 0 360 arc
fill
gR
}bd
/@e
{
np
0 360 arc
:K
stroke
}bd
/@f
{
np
$m currentmatrix
pop
:T
scale
0 0 .5 0 360 arc
:K
$m setmatrix
stroke
}bd
/@k
{
gS
np
:T
0 0 :M
0 0 5 2 roll
arc fill
gR
}bd
/@l
{
gS
np
:T
0 0 :M
scale
0 0 .5 5 -2 roll arc
fill
gR
}bd
/@m
{
np
arc
stroke
}bd
/@n
{
np
$m currentmatrix
pop
:T
scale
0 0 .5 5 -2 roll arc
$m setmatrix
stroke
}bd
%%EndFile
%%BeginFile: adobe_psp_customps
%%Copyright: Copyright 1990-1993 Adobe Systems Incorporated. All Rights Reserved.
/$t Z
/$p Z
/$s Z
/$o 1. def
/2state? false def
/ps Z
level2 startnoload
/pushcolor/currentrgbcolor ld
/popcolor/setrgbcolor ld
/setcmykcolor where
{
pop/currentcmykcolor where
{
pop/pushcolor/currentcmykcolor ld
/popcolor/setcmykcolor ld
}if
}if
level2 endnoload level2 not startnoload
/pushcolor
{
currentcolorspace $c eq
{
currentcolor currentcolorspace true
}{
currentcmykcolor false
}ifelse
}bd
/popcolor
{
{
setcolorspace setcolor
}{
setcmykcolor
}ifelse
}bd
level2 not endnoload
/pushstatic
{
ps
2state?
$o
$t
$p
$s
}bd
/popstatic
{
/$s xs
/$p xs
/$t xs
/$o xs
/2state? xs
/ps xs
}bd
/pushgstate
{
save errordict/nocurrentpoint{pop 0 0}put
currentpoint
3 -1 roll restore
pushcolor
currentlinewidth
currentlinecap
currentlinejoin
currentdash exch aload length
np clippath pathbbox
$m currentmatrix aload pop
}bd
/popgstate
{
$m astore setmatrix
2 index sub exch
3 index sub exch
rC
array astore exch setdash
setlinejoin
setlinecap
lw
popcolor
np :M
}bd
/bu
{
pushgstate
gR
pushgstate
2state?
{
gR
pushgstate
}if
pushstatic
pm restore
mT concat
}bd
/bn
{
/pm save store
popstatic
popgstate
gS
popgstate
2state?
{
gS
popgstate
}if
}bd
/cpat{pop 64 div G 8{pop}repeat}bd
%%EndFile
%%BeginFile: adobe_psp_basic_text
%%Copyright: Copyright 1990-1993 Adobe Systems Incorporated. All Rights Reserved.
/S/show ld
/A{
0.0 exch ashow
}bd
/R{
0.0 exch 32 exch widthshow
}bd
/W{
0.0 3 1 roll widthshow
}bd
/J{
0.0 32 4 2 roll 0.0 exch awidthshow
}bd
/V{
0.0 4 1 roll 0.0 exch awidthshow
}bd
/fcflg true def
/fc{
fcflg{
vmstatus exch sub 50000 lt{
(%%[ Warning: Running out of memory ]%%\r)print flush/fcflg false store
}if pop
}if
}bd
/$f[1 0 0 -1 0 0]def
/:ff{$f :mf}bd
/MacEncoding StandardEncoding 256 array copy def
MacEncoding 39/quotesingle put
MacEncoding 96/grave put
/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute
/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave
/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute
/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis
/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
/registered/copyright/trademark/acute/dieresis/notequal/AE/Oslash
/infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff/summation
/product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash
/questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft
/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe
/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide/lozenge
/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright/fi/fl
/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave
/Oacute/Ocircumflex/apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde
/macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron
MacEncoding 128 128 getinterval astore pop
level2 startnoload
/copyfontdict
{
findfont dup length dict
begin
{
1 index/FID ne{def}{pop pop}ifelse
}forall
}bd
level2 endnoload level2 not startnoload
/copyfontdict
{
findfont dup length dict
copy
begin
}bd
level2 not endnoload
md/fontname known not{
/fontname/customfont def
}if
/Encoding Z
/:mre
{
copyfontdict
/Encoding MacEncoding def
fontname currentdict
end
definefont :ff def
}bd
/:bsr
{
copyfontdict
/Encoding Encoding 256 array copy def
Encoding dup
}bd
/pd{put dup}bd
/:esr
{
pop pop
fontname currentdict
end
definefont :ff def
}bd
/scf
{
scalefont def
}bd
/scf-non
{
$m scale :mf setfont
}bd
/ps Z
/fz{/ps xs}bd
/sf/setfont ld
/cF/currentfont ld
/mbf
{
/makeblendedfont where
{
pop
makeblendedfont
/ABlend exch definefont
}{
pop
}ifelse
def
}def
%%EndFile
%%BeginFile: adobe_psp_derived_styles
%%Copyright: Copyright 1990-1993 Adobe Systems Incorporated. All Rights Reserved.
/wi
version(23.0)eq
{
{
gS 0 0 0 0 rC stringwidth gR
}bind
}{
/stringwidth load
}ifelse
def
/$o 1. def
/gl{$o G}bd
/ms{:M S}bd
/condensedmtx[.82 0 0 1 0 0]def
/:mc
{
condensedmtx :mf def
}bd
/extendedmtx[1.18 0 0 1 0 0]def
/:me
{
extendedmtx :mf def
}bd
/basefont Z
/basefonto Z
/dxa Z
/dxb Z
/dxc Z
/dxd Z
/dsdx2 Z
/bfproc Z
/:fbase
{
dup/FontType get 0 eq{
dup length dict begin
dup{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall
/FDepVector exch/FDepVector get[exch/:fbase load forall]def
}/bfproc load ifelse
/customfont currentdict end definefont
}bd
/:mo
{
/bfproc{
dup dup length 2 add dict
begin
{
1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse
}forall
/PaintType 2 def
/StrokeWidth .012 0 FontMatrix idtransform pop def
/customfont currentdict
end
definefont
8 dict begin
/basefonto xdf
/basefont xdf
/FontType 3 def
/FontMatrix[1 0 0 1 0 0]def
/FontBBox[0 0 1 1]def
/Encoding StandardEncoding def
/BuildChar
{
exch begin
basefont setfont
( )dup 0 4 -1 roll put
dup wi
setcharwidth
0 0 :M
gS
gl
dup show
gR
basefonto setfont
show
end
}def
}store :fbase
}bd
/:mso
{
/bfproc{
7 dict begin
/basefont xdf
/FontType 3 def
/FontMatrix[1 0 0 1 0 0]def
/FontBBox[0 0 1 1]def
/Encoding StandardEncoding def
/BuildChar
{
exch begin
sD begin
/dxa 1 ps div def
basefont setfont
( )dup 0 4 -1 roll put
dup wi
1 index 0 ne
{
exch dxa add exch
}if
setcharwidth
dup 0 0 ms
dup dxa 0 ms
dup dxa dxa ms
dup 0 dxa ms
gl
dxa 2. div dup ms
end
end
}def
}store :fbase
}bd
/:ms
{
/bfproc{
dup dup length 2 add dict
begin
{
1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse
}forall
/PaintType 2 def
/StrokeWidth .012 0 FontMatrix idtransform pop def
/customfont currentdict
end
definefont
8 dict begin
/basefonto xdf
/basefont xdf
/FontType 3 def
/FontMatrix[1 0 0 1 0 0]def
/FontBBox[0 0 1 1]def
/Encoding StandardEncoding def
/BuildChar
{
exch begin
sD begin
/dxb .05 def
basefont setfont
( )dup 0 4 -1 roll put
dup wi
exch dup 0 ne
{
dxb add
}if
exch setcharwidth
dup dxb .01 add 0 ms
0 dxb :T
gS
gl
dup 0 0 ms
gR
basefonto setfont
0 0 ms
end
end
}def
}store :fbase
}bd
/:mss
{
/bfproc{
7 dict begin
/basefont xdf
/FontType 3 def
/FontMatrix[1 0 0 1 0 0]def
/FontBBox[0 0 1 1]def
/Encoding StandardEncoding def
/BuildChar
{
exch begin
sD begin
/dxc 1 ps div def
/dsdx2 .05 dxc 2 div add def
basefont setfont
( )dup 0 4 -1 roll put
dup wi
exch dup 0 ne
{
dsdx2 add
}if
exch setcharwidth
dup dsdx2 .01 add 0 ms
0 .05 dxc 2 div sub :T
dup 0 0 ms
dup dxc 0 ms
dup dxc dxc ms
dup 0 dxc ms
gl
dxc 2 div dup ms
end
end
}def
}store :fbase
}bd
/:msb
{
/bfproc{
7 dict begin
/basefont xdf
/FontType 3 def
/FontMatrix[1 0 0 1 0 0]def
/FontBBox[0 0 1 1]def
/Encoding StandardEncoding def
/BuildChar
{
exch begin
sD begin
/dxd .03 def
basefont setfont
( )dup 0 4 -1 roll put
dup wi
1 index 0 ne
{
exch dxd add exch
}if
setcharwidth
dup 0 0 ms
dup dxd 0 ms
dup dxd dxd ms
0 dxd ms
end
end
}def
}store :fbase
}bd
/italicmtx[1 0 -.212557 1 0 0]def
/:mi
{
italicmtx :mf def
}bd
/:v
{
[exch dup/FontMatrix get exch
dup/FontInfo known
{
/FontInfo get
dup/UnderlinePosition known
{
dup/UnderlinePosition get
2 index 0
3 1 roll
transform
exch pop
}{
.1
}ifelse
3 1 roll
dup/UnderlineThickness known
{
/UnderlineThickness get
exch 0 3 1 roll
transform
exch pop
abs
}{
pop pop .067
}ifelse
}{
pop pop .1 .067
}ifelse
]
}bd
/$t Z
/$p Z
/$s Z
/:p
{
aload pop
2 index mul/$t xs
1 index mul/$p xs
.012 mul/$s xs
}bd
/:m
{gS
0 $p rm
$t lw
0 rl stroke
gR
}bd
/:n
{
gS
0 $p rm
$t lw
0 rl
gS
gl
stroke
gR
strokepath
$s lw
/setstrokeadjust where{pop
currentstrokeadjust true setstrokeadjust stroke setstrokeadjust
}{
stroke
}ifelse
gR
}bd
/:o
{gS
0 $p rm
$t 2 div dup rm
$t lw
dup 0 rl
stroke
gR
:n
}bd
%%EndFile
%%BeginFile: adobe_psp_dashes
%%Copyright: Copyright 1990-1993 Adobe Systems Incorporated. All Rights Reserved.
/:q/setdash ld
/:r{
np
:M
:L
stroke
}bd
/nodash[]def
/qdenddash
{
nodash 0 setdash
}bd
%%EndFile
/currentpacking where {pop sc_oldpacking setpacking}if
end % md
%%EndProlog
%%BeginSetup
md begin
countdictstack
[
{%stopped
%%BeginFeature: *ManualFeed False
level2 {1 dict dup /ManualFeed false put setpagedevice}{statusdict begin /manualfeed false store end} ifelse
%%EndFeature
}featurecleanup
countdictstack
[
{%stopped
%%BeginFeature: *InputSlot Upper
%%EndFeature
}featurecleanup
countdictstack
[
{%stopped
%%BeginFeature: *PageRegion LetterSmall
level2 {
2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice
}{
/lettersmall where {pop lettersmall} {letterR} ifelse
} ifelse
%%EndFeature
}featurecleanup
()setjob
/pT[1 0 0 -1 30 761]def/mT[1 0 0 -1 30 761]def
initQDpatterns
/sD 16 dict def
300 level2{1 dict dup/WaitTimeout 4 -1 roll put setuserparams}{statusdict/waittimeout 3 -1 roll put}ifelse
%%IncludeFont: Times-Roman
%%IncludeFont: Times-Bold
%%IncludeFont: Times-Italic
%%IncludeFont: Symbol
%%IncludeFont: ZapfChancery-MediumItalic
%%IncludeFont: Helvetica
%%IncludeFont: Helvetica-Oblique
%%IncludeFont: Courier
/f0_1/Times-Roman :mre
/f0_12 f0_1 12 scf
/f0_10 f0_1 10 scf
/f0_9 f0_1 9 scf
/f0_7 f0_1 7 scf
/f0_6 f0_1 6 scf
/f1_1/Times-Bold :mre
/f1_18 f1_1 18 scf
/f1_14 f1_1 14 scf
/f1_12 f1_1 12 scf
/f1_10 f1_1 10 scf
/f2_1/Times-Italic :mre
/f2_12 f2_1 12 scf
/f2_10 f2_1 10 scf
/f2_7 f2_1 7 scf
/f3_1/Symbol findfont :ff def /f3_12 f3_1 12 scf
/f3_10 f3_1 10 scf
/f3_7 f3_1 7 scf
/f4_1/ZapfChancery-MediumItalic :mre
/f4_14 f4_1 14 scf
/f4_12 f4_1 12 scf
/f4_10 f4_1 10 scf
/f4_9 f4_1 9 scf
/f4_7 f4_1 7 scf
/f5_1/Helvetica :mre
/f5_18 f5_1 18 scf
/f5_14 f5_1 14 scf
/f5_12 f5_1 12 scf
/f5_10 f5_1 10 scf
/f5_9 f5_1 9 scf
/f5_8 f5_1 8 scf
/f5_7 f5_1 7 scf
/f7_1/Helvetica-Oblique :mre
/f7_14 f7_1 14 scf
/f7_10 f7_1 10 scf
/f8_1/Courier :mre
/f8_10 f8_1 10 scf
/f8_9 f8_1 9 scf
/Courier findfont[10 0 0 -10 0 0]:mf setfont
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
initializepage
(; page: 1 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(24)S
gR
gS 0 44 552 630 rC
244 56 :M
f1_18 sf
-.108(Chapter 4 )A
164 86 :M
-.015(A Framework for Visualization)A
60 131 :M
f1_14 sf
-.014(4.1 Introduction)A
78 161 :M
f0_10 sf
.477 .048(A database system is able to manage many different data arrangements using a declarative description of)J
60 176 :M
.74 .074(the data, i.e., the schema, and generic components for storing and manipulating the data. To manage visual)J
60 191 :M
.059 .006(information such as schemas, a DTSM must take a similar approach: use declarative description of schemas and)J
60 206 :M
-.007(their visualizations, and generic methods to manipulate them. These cannot be developed in)A
430 206 :M
.688 .069( an ad hoc manner;)J
60 221 :M
.642 .064(the design and implementation of a customizable and extensible schema manager must be based on a formal)J
60 236 :M
1.273 .127(understanding of the interplay between schemas and their visual presentations. To achieve this goal, we)J
60 251 :M
.406 .041(develop a formalism of the visualization process. It consists of the following main elements: 1\) a )J
464 251 :M
f2_10 sf
.15 .015(data model)J
60 266 :M
f0_10 sf
.485 .049(that captures graph-like information on a conceptual level,)J
301 266 :M
.547 .055( 2\) a )J
f2_10 sf
2.354 .235(visual model)J
380 266 :M
f0_10 sf
1.04 .104( that captures visualizations of)J
60 281 :M
.147 .015(such information, and 3\) a mapping between data and visual models, referred to as a )J
404 281 :M
f2_10 sf
.121 .012(visual metaphor)J
470 281 :M
f0_10 sf
.735 .074(. We use)J
60 296 :M
1.95 .195(the term )J
102 296 :M
f2_10 sf
.954 .095(visual metaphor)J
170 296 :M
f0_10 sf
1.784 .178( \(abbreviated as )J
245 296 :M
f2_10 sf
.288(metaphor)A
f0_10 sf
.828 .083(\) because )J
329 296 :M
f2_10 sf
.49(metaphor)A
f0_10 sf
1.289 .129( has been used by)J
450 296 :M
2.369 .237( the interface)J
60 311 :M
.202 .02(community in a variety of ways, generally describing a transformation between abstract and visual information)J
60 326 :M
.602([BCCL91].)A
f0_9 sf
0 -4 rm
.538(2)A
0 4 rm
f0_10 sf
1.694 .169( The abstract information of concern to us is the database schema, but this formalism is)J
60 341 :M
-.01(applicable to any similarly structured information; throughout this)A
325 341 :M
.577 .058( section the word \322schema\323 could be equally)J
60 356 :M
1.691 .169(well replaced by \322instance of graph-like information\323. Examples of visual models)J
423 356 :M
2.501 .25( and metaphors for)J
60 371 :M
-.025(visualizing schemas include directed)A
207 371 :M
.583 .058( graphs, E-R diagrams, and textual tables. Clearly, these metaphors have)J
60 386 :M
.134 .013(different characteristics, and would be useful in different circumstances. In general, there is no ideal metaphor,)J
60 401 :M
.082 .008(thus metaphor choice is important. Unfortunately, no general metaphor selection criteria exist. For the specific)J
60 416 :M
1.064 .106(case of database schemas \(and similarly)J
230 416 :M
1.712 .171( structured information\), our formalism is intended to provide a)J
60 431 :M
1.537 .154(framework for flexible use, definition, and evaluation of visual metaphors. This formalism permits the)J
60 446 :M
.416 .042(declarative definition of models and metaphors, provides criteria for the identification of incorrect metaphors,)J
60 461 :M
-.019(and presents some guidelines for metaphor comparison.)A
283 461 :M
.632 .063( It supports mixed metaphors, i.e., the use of different)J
60 476 :M
.451 .045(visual metaphors for different parts of a single schema, establishing when and how metaphors may be mixed.)J
60 491 :M
1.059 .106(Finally, the formalism allows the richness of most visual models to be used to capture information that is)J
60 506 :M
(meaningful to the user but is beyond the database schema. A Desk-Top Schema Manager called OPOSSUM has)S
60 521 :M
-.04(been implemented based)A
159 521 :M
.664 .066( on this formalism, and is described in detail in the next chapter. While our work is)J
60 536 :M
.374 .037(oriented towards database schemas, the formalism is applicable to the visualization of any structured data that)J
60 551 :M
-.003(conforms to our definition of data models \(which is found in the next section\).)A
60 581 :M
f1_14 sf
-.02(4.2 Data and Visual Models)A
78 611 :M
f0_10 sf
.122 .012(For completeness, before presenting the definition of data and visual models, we briefly review some basic)J
60 626 :M
-.026(definitions and notations of)A
170 626 :M
.625 .062( binary relations which will be used later in the definition of visual metaphors. A)J
60 641 :M
-.006(binary relation )A
121 630 6 16 rC
132 641 :M
f2_12 sf
( )S
121 630 :M
psb
currentpoint pse
122 631 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(r) t
pse
psb
pse
gR
gS 0 44 552 630 rC
127 641 :M
f0_10 sf
( from set )S
165 630 9 16 rC
176 641 :M
f2_12 sf
( )S
165 630 :M
psb
currentpoint pse
166 631 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
3 83 /Times-Italic 0 0 0 100 T
(A) t
pse
psb
pse
gR
gS 0 44 552 630 rC
174 641 :M
f0_10 sf
-.155( \(its )A
192 641 :M
f2_10 sf
-.199(domain)A
222 641 :M
f0_10 sf
-.202(\) to)A
236 641 :M
.789 .079( set )J
254 630 9 16 rC
265 641 :M
f2_12 sf
( )S
254 630 :M
psb
currentpoint pse
255 631 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 83 /Times-Italic 0 0 0 100 T
(B) t
pse
psb
pse
gR
gS 0 44 552 630 rC
263 641 :M
f0_10 sf
.491 .049( \(its )J
283 641 :M
f2_10 sf
.246(range)A
f0_10 sf
.482 .048(\) is a subset of )J
371 630 28 16 rC
381 641 :M
f0_12 sf
( )S
f3_12 sf
( )S
f2_12 sf
( )S
371 630 :M
psb
currentpoint pse
372 631 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
3 83 /Times-Italic 0 0 0 100 T
(A) t
87 83 /Symbol 0 0 0 100 T
(\264) t
166 83 /Times-Italic 0 0 0 100 T
(B) t
pse
psb
pse
gR
gS 0 44 552 630 rC
399 641 :M
f0_10 sf
.48 .048( denoted )J
438 630 47 16 rC
448 641 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
438 630 :M
psb
currentpoint pse
439 631 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(r) t
63 83 /Times-Roman 0 0 0 100 T
(:) t
118 83 /Times-Italic 0 0 0 100 T
(A) t
202 83 /Symbol 0 0 0 100 T
(\256) t
325 83 /Times-Italic 0 0 0 100 T
(B) t
pse
psb
pse
gR
gS 0 44 552 630 rC
485 641 :M
f0_10 sf
.781 .078(. The)J
60 656 :M
.533 .053(relation )J
94 649 5 8 rC
104 660 :M
f2_12 sf
( )S
94 649 :M
psb
currentpoint pse
95 650 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 50 /Times-Italic 0 0 0 100 T
(r) t
pse
psb
pse
gR
gS 0 44 552 630 rC
99 656 :M
f0_10 sf
.581 .058( is called a )J
148 656 :M
f2_10 sf
-.111(function)A
181 656 :M
f0_10 sf
.754 .075( if for each )J
231 645 28 16 rC
241 656 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
231 645 :M
psb
currentpoint pse
232 646 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(a) t
74 83 /Symbol 0 0 0 100 T
(\316) t
172 83 /Times-Italic 0 0 0 100 T
(A) t
pse
psb
pse
gR
gS 0 44 552 630 rC
259 656 :M
f0_10 sf
.895 .089( there is at most one )J
350 645 32 16 rC
361 656 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
350 645 :M
psb
currentpoint pse
351 646 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(b) t
37 42 /Symbol 0 0 0 50 T
(\316) t
86 42 /Times-Italic 0 0 0 50 T
(B) t
pse
psb
pse
gR
gS 0 44 552 630 rC
382 656 :M
f0_10 sf
1.375 .138( where )J
415 645 43 16 rC
426 656 :M
f3_12 sf
( )S
f2_12 sf
( )S
f0_12 sf
( )S
415 645 :M
psb
currentpoint pse
416 646 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
(\() t
33 83 /Times-Italic 0 0 0 100 T
(a) t
83 83 /Times-Roman 0 0 0 100 T
(,) t
108 83 /Times-Italic 0 0 0 100 T
(b) t
158 83 /Times-Roman 0 0 0 100 T
(\)) t
215 83 /Symbol 0 0 0 100 T
(\316) t
310 83 /Times-Italic 0 0 0 100 T
(r) t
pse
psb
pse
gR
gS 0 44 552 630 rC
458 656 :M
f0_10 sf
1.308 .131(; it is called)J
60 671 :M
f2_10 sf
.204(total)A
f0_10 sf
.494 .049( if for each )J
128 660 28 14 rC
138 671 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
128 660 :M
psb
currentpoint pse
129 661 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(a) t
74 83 /Symbol 0 0 0 100 T
(\316) t
172 83 /Times-Italic 0 0 0 100 T
(A) t
pse
psb
pse
gR
gS 0 44 552 630 rC
156 671 :M
f0_10 sf
.655 .065( there is at least one )J
244 660 28 14 rC
254 671 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
244 660 :M
psb
currentpoint pse
245 661 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(b) t
74 83 /Symbol 0 0 0 100 T
(\316) t
170 83 /Times-Italic 0 0 0 100 T
(B) t
pse
psb
pse
gR
gS 0 44 552 630 rC
272 671 :M
f0_10 sf
.606 .061( where )J
303 660 43 14 rC
314 671 :M
f3_12 sf
( )S
f2_12 sf
( )S
f0_12 sf
( )S
303 660 :M
psb
currentpoint pse
304 661 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
(\() t
33 83 /Times-Italic 0 0 0 100 T
(a) t
83 83 /Times-Roman 0 0 0 100 T
(,) t
108 83 /Times-Italic 0 0 0 100 T
(b) t
158 83 /Times-Roman 0 0 0 100 T
(\)) t
215 83 /Symbol 0 0 0 100 T
(\316) t
310 83 /Times-Italic 0 0 0 100 T
(r) t
pse
psb
pse
gR
gS 0 44 552 630 rC
346 671 :M
f0_10 sf
.579 .058(; it is called )J
399 671 :M
f2_10 sf
-.108(injective)A
433 671 :M
f0_10 sf
.328 .033( if)J
443 671 :M
1.353 .135( its inverse is a)J
gR
gS 0 0 552 730 rC
60 676.5 -.5 .5 172.5 676 .5 60 676 @a
0 680 552 28 rC
78 687 :M
f4_9 sf
(2)S
f0_10 sf
0 4 rm
(The term)S
0 -4 rm
0 4 rm
.487 .049( metaphor is sometimes used to describe behavior of visualizations as well as appearance. We)J
0 -4 rm
60 704 :M
-.019(do not consider behavior in this chapter.)A
endp
%%Page: 2 2
%%BeginPageSetup
initializepage
(; page: 2 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(25)S
gR
gS 0 38 552 676 rC
60 50 :M
f0_10 sf
.45 .045(function; and it is called )J
f2_10 sf
.207(onto)A
182 50 :M
f0_10 sf
.903 .09( if its inverse is total. Injective functions are sometimes called 1-1 functions.)J
60 65 :M
.179 .018(Binary relations can be unioned, in which case, their domains, their ranges, and the sets of pairs in the relations)J
60 80 :M
-.021(are unioned, respectively. For a function )A
227 73 5 8 rC
237 84 :M
f2_12 sf
( )S
227 73 :M
psb
currentpoint pse
228 74 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 50 /Times-Italic 0 0 0 100 T
(r) t
pse
psb
pse
gR
gS 0 38 552 676 rC
232 80 :M
f0_10 sf
-.02(, we write )A
274 69 38 16 rC
284 80 :M
f0_12 sf
( )S
f2_12 sf
( )S
274 69 :M
psb
currentpoint pse
275 70 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(r) t
39 83 /Times-Roman 0 0 0 100 T
(\() t
72 83 /Times-Italic 0 0 0 100 T
(a) t
122 83 /Times-Roman 0 0 0 100 T
(\)) t
179 83 /Times-Roman 0 0 0 100 T
(=) t
259 83 /Times-Italic 0 0 0 100 T
(b) t
pse
psb
pse
gR
gS 0 38 552 676 rC
312 80 :M
f0_10 sf
-.014( instead of )A
356 69 42 16 rC
366 80 :M
f3_12 sf
( )S
f2_12 sf
( )S
f0_12 sf
( )S
356 69 :M
psb
currentpoint pse
357 70 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
(\() t
33 83 /Times-Italic 0 0 0 100 T
(a) t
83 83 /Times-Roman 0 0 0 100 T
(,) t
108 83 /Times-Italic 0 0 0 100 T
(b) t
158 83 /Times-Roman 0 0 0 100 T
(\)) t
215 83 /Symbol 0 0 0 100 T
(\316) t
310 83 /Times-Italic 0 0 0 100 T
(r) t
pse
psb
pse
gR
gS 0 38 552 676 rC
398 80 :M
f0_10 sf
-.033(. Functions may be)A
477 80 :M
.039 .004( applied)J
60 95 :M
(to sets of values; if )S
138 84 32 16 rC
148 95 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
138 84 :M
psb
currentpoint pse
139 85 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
3 83 /Times-Italic 0 0 0 100 T
(A) t
63 83 /Times-Roman 0 0 0 100 T
currentfont dup length dict /over_fdic exch def
{1 index /FID ne {over_fdic 3 1 roll put} {pop pop} ifelse } forall
/over_enc 256 array def over_fdic /Encoding get over_enc copy
200 /quotesingle put
over_fdic /Encoding over_enc put /over_font over_fdic definefont
currentfont exch setfont (\310) show setfont
105 83 /Symbol 0 0 0 100 T
(\315) t
203 83 /Times-Italic 0 0 0 100 T
(A) t
pse
psb
pse
gR
gS 0 38 552 676 rC
170 95 :M
f0_10 sf
-.119(, then )A
195 84 23 16 rC
205 95 :M
f0_12 sf
( )S
f2_12 sf
( )S
195 84 :M
psb
currentpoint pse
196 85 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(r) t
39 83 /Times-Roman 0 0 0 100 T
(\() t
75 83 /Times-Italic 0 0 0 100 T
(A) t
135 83 /Times-Roman 0 0 0 100 T
currentfont dup length dict /over_fdic exch def
{1 index /FID ne {over_fdic 3 1 roll put} {pop pop} ifelse } forall
/over_enc 256 array def over_fdic /Encoding get over_enc copy
200 /quotesingle put
over_fdic /Encoding over_enc put /over_font over_fdic definefont
currentfont exch setfont (\310) show setfont
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
218 95 :M
f0_10 sf
-.008( is equal to )A
264 84 69 16 rC
274 95 :M
f3_12 sf
( )S
f2_12 sf
( )S
f0_12 sf
( )S
264 84 :M
psb
currentpoint pse
265 85 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
({) t
48 83 /Times-Italic 0 0 0 100 T
(r) t
87 83 /Times-Roman 0 0 0 100 T
(\() t
120 83 /Times-Italic 0 0 0 100 T
(a) t
170 83 /Times-Roman 0 0 0 100 T
(\)) t
227 83 /Times-Roman 0 0 0 100 T
(|) t
271 83 /Times-Italic 0 0 0 100 T
(a) t
345 83 /Symbol 0 0 0 100 T
(\316) t
443 83 /Times-Italic 0 0 0 100 T
(A) t
503 83 /Times-Roman 0 0 0 100 T
currentfont dup length dict /over_fdic exch def
{1 index /FID ne {over_fdic 3 1 roll put} {pop pop} ifelse } forall
/over_enc 256 array def over_fdic /Encoding get over_enc copy
200 /quotesingle put
over_fdic /Encoding over_enc put /over_font over_fdic definefont
currentfont exch setfont (\310) show setfont
(}) t
pse
psb
pse
gR
gS 0 38 552 676 rC
333 95 :M
f0_10 sf
-.022(. We also use )A
391 84 13 16 rC
401 95 :M
f0_7 sf
( )S
403 95 :M
f2_12 sf
( )S
391 84 :M
psb
currentpoint pse
392 85 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(r) t
46 50 /Times-Roman 0 0 0 58 T
(\2611) t
pse
psb
pse
gR
gS 0 38 552 676 rC
404 95 :M
f0_10 sf
( to denote the)S
.307 .031( inverse of a)J
60 110 :M
-.103(function )A
96 103 5 8 rC
106 114 :M
f2_12 sf
( )S
96 103 :M
psb
currentpoint pse
97 104 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 50 /Times-Italic 0 0 0 100 T
(r) t
pse
psb
pse
gR
gS 0 38 552 676 rC
101 110 :M
f0_10 sf
-.01(, which may return a subset of )A
224 99 9 16 rC
235 110 :M
f2_12 sf
( )S
224 99 :M
psb
currentpoint pse
225 100 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
3 83 /Times-Italic 0 0 0 100 T
(A) t
pse
psb
pse
gR
gS 0 38 552 676 rC
233 110 :M
f0_10 sf
-.035( if )A
244 103 5 8 rC
254 114 :M
f2_12 sf
( )S
244 103 :M
psb
currentpoint pse
245 104 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 50 /Times-Italic 0 0 0 100 T
(r) t
pse
psb
pse
gR
gS 0 38 552 676 rC
249 110 :M
f0_10 sf
( is not)S
.492 .049( 1-1. Finally, for a function )J
394 103 5 8 rC
404 114 :M
f2_12 sf
( )S
394 103 :M
psb
currentpoint pse
395 104 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 50 /Times-Italic 0 0 0 100 T
(r) t
pse
psb
pse
gR
gS 0 38 552 676 rC
399 110 :M
f0_10 sf
.457 .046(, the notation )J
457 99 19 16 rC
467 110 :M
f0_12 sf
( )S
f2_12 sf
( )S
457 99 :M
psb
currentpoint pse
458 100 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(r) t
39 83 /Times-Roman 0 0 0 100 T
(\() t
72 83 /Times-Italic 0 0 0 100 T
(a) t
122 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
476 110 :M
f0_10 sf
.478 .048( is valid)J
60 125 :M
.705 .071(even if there is no )J
139 114 28 16 rC
149 125 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
139 114 :M
psb
currentpoint pse
140 115 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(b) t
74 83 /Symbol 0 0 0 100 T
(\316) t
170 83 /Times-Italic 0 0 0 100 T
(B) t
pse
psb
pse
gR
gS 0 38 552 676 rC
167 125 :M
f0_10 sf
.606 .061( where )J
198 114 38 16 rC
208 125 :M
f0_12 sf
( )S
f2_12 sf
( )S
198 114 :M
psb
currentpoint pse
199 115 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(r) t
39 83 /Times-Roman 0 0 0 100 T
(\() t
72 83 /Times-Italic 0 0 0 100 T
(a) t
122 83 /Times-Roman 0 0 0 100 T
(\)) t
179 83 /Times-Roman 0 0 0 100 T
(=) t
259 83 /Times-Italic 0 0 0 100 T
(b) t
pse
psb
pse
gR
gS 0 38 552 676 rC
236 125 :M
f0_10 sf
.631 .063(. In that case,)J
296 125 :M
1.284 .128( when applying a set-valued function on )J
472 114 19 16 rC
482 125 :M
f0_12 sf
( )S
f2_12 sf
( )S
472 114 :M
psb
currentpoint pse
473 115 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(r) t
39 83 /Times-Roman 0 0 0 100 T
(\() t
72 83 /Times-Italic 0 0 0 100 T
(a) t
122 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
491 125 :M
f0_10 sf
1.274 .127(, the)J
60 140 :M
-.004(empty set is returned.)A
60 170 :M
f1_12 sf
-.026(4.2.1 Problem Formulation)A
78 200 :M
f0_10 sf
.437 .044(By definition, a )J
146 200 :M
f2_10 sf
-.197(schema)A
176 200 :M
f0_10 sf
.843 .084( describes the conceptual structure of some information in a database, specified)J
60 215 :M
.553 .055(using the concepts of some )J
176 215 :M
f2_10 sf
.15 .015(data model)J
222 215 :M
f0_10 sf
.535 .054( \(for clarity, such a)J
302 215 :M
1.138 .114( schema will henceforth be referred to as a )J
f2_10 sf
.524(data)A
60 230 :M
-.197(schema)A
90 230 :M
f0_10 sf
-.017(\). We are interested in the process of creating)A
274 230 :M
.647 .065( a visualization of a data schema. For this, we introduce)J
60 245 :M
.629 .063(the notion of a )J
125 245 :M
f2_10 sf
.086 .009(visual model)J
177 245 :M
f0_10 sf
.606 .061(. Like a data model, it)J
273 245 :M
1.129 .113( describes the structure of some information, though its)J
60 260 :M
-.03(concepts are visual.)A
139 260 :M
.616 .062( As with data schemas, any visual representation that conforms to a visual model will be)J
60 275 :M
-.038(called a )A
f2_10 sf
-.045(visual schema)A
f0_10 sf
-.045(. Visual schemas)A
219 275 :M
.595 .059( can be used in two general ways: as a read-only visual representation)J
60 290 :M
.054 .005(of the data schema, or as an editable visualization that allows creation or manipulation of a data schema through)J
60 305 :M
(changes to it.)S
78 320 :M
-.07(Using the above)A
143 320 :M
.576 .058( notions, the problem of visual representation of data schemas may be stated formally as)J
60 335 :M
-.026(follows. Given a data model )A
f4_14 sf
(D)S
188 335 :M
f0_10 sf
-.099(, let )A
205 322 24 19 rC
215 333 :M
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
205 322 :M
psb
currentpoint pse
206 323 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(S) t
51 96 /Times-Roman 0 0 0 100 T
(\() t
84 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(D) t
165 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
229 335 :M
f0_10 sf
( denote the set of valid data schemas that can be)S
.155 .016( constructed based on)J
60 350 :M
.558 .056(that model. Similarly, let )J
170 337 23 19 rC
180 348 :M
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
170 337 :M
psb
currentpoint pse
171 338 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(S) t
51 96 /Times-Roman 0 0 0 100 T
(\() t
84 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
156 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
193 350 :M
f0_10 sf
.602 .06( denote the set of visual schemas that)J
349 350 :M
1.227 .123( can be constructed based on a visual)J
60 365 :M
-.149(model )A
f4_14 sf
(G)S
96 365 :M
f0_10 sf
-.054(. The sets)A
137 365 :M
.5 .05( )J
140 352 24 19 rC
150 363 :M
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
140 352 :M
psb
currentpoint pse
141 353 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(S) t
51 96 /Times-Roman 0 0 0 100 T
(\() t
84 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(D) t
165 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
164 365 :M
f0_10 sf
.651 .065( and )J
185 352 23 19 rC
195 363 :M
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
185 352 :M
psb
currentpoint pse
186 353 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(S) t
51 96 /Times-Roman 0 0 0 100 T
(\() t
84 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
156 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
208 365 :M
f0_10 sf
.656 .066( are defined to be the )J
301 365 :M
f2_10 sf
.695 .069(information capacities)J
f0_10 sf
.365 .037( [Hul86, MIR93] of the data)J
60 380 :M
-.159(model )A
f4_14 sf
(D)S
97 380 :M
f0_10 sf
-.029( and the visual model )A
f4_14 sf
(G)S
194 380 :M
f0_10 sf
(, respectively. In)S
.427 .043( order to create visual schemas that represent data schemas,)J
60 395 :M
-.022(we require a binary relation between )A
209 382 24 19 rC
219 393 :M
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
209 382 :M
psb
currentpoint pse
210 383 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(S) t
51 96 /Times-Roman 0 0 0 100 T
(\() t
84 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(D) t
165 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
233 395 :M
f0_10 sf
-.11( and )A
252 382 23 19 rC
262 393 :M
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
252 382 :M
psb
currentpoint pse
253 383 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(S) t
51 96 /Times-Roman 0 0 0 100 T
(\() t
84 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
156 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
275 395 :M
f0_10 sf
-.024(, whose specific properties)A
382 395 :M
.654 .065( depend on the intended use of)J
60 410 :M
-.007(the visual schemas. Specifically, )A
78 440 :M
-.033(1. If a visual schema of )A
174 440 :M
f4_14 sf
(G)S
183 440 :M
f0_10 sf
-.023( is used only to view any data schema of)A
345 440 :M
-.061( )A
f4_14 sf
(D)S
358 440 :M
f0_10 sf
.6 .06( in its entirety, then an onto function)J
91 455 :M
-.037(must exist of the form )A
182 442 80 19 rC
192 453 :M
f3_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
182 442 :M
psb
currentpoint pse
183 443 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
14 96 /Times-Italic 0 0 0 100 T
(f) t
80 96 /Times-Roman 0 0 0 100 T
(:) t
132 96 /Times-Italic 0 0 0 100 T
(S) t
183 96 /Times-Roman 0 0 0 100 T
(\() t
216 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
288 96 /Times-Roman 0 0 0 100 T
(\)) t
345 96 /Symbol 0 0 0 100 T
(\256) t
467 96 /Times-Italic 0 0 0 100 T
(S) t
518 96 /Times-Roman 0 0 0 100 T
(\() t
551 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(D) t
632 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
262 455 :M
f0_10 sf
-.005(, so that every data schema can be represented visually. )A
78 470 :M
-.025(2. If, in addition, a visual schema of )A
f4_14 sf
(G)S
233 470 :M
f0_10 sf
-.023( is also used to update a data schema of )A
393 470 :M
f4_14 sf
(D)S
403 470 :M
f0_10 sf
-.039(, then a total onto)A
473 470 :M
.098 .01( function)J
91 485 :M
-.037(must exist of the form )A
182 472 80 19 rC
192 483 :M
f3_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
182 472 :M
psb
currentpoint pse
183 473 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
14 96 /Times-Italic 0 0 0 100 T
(f) t
80 96 /Times-Roman 0 0 0 100 T
(:) t
132 96 /Times-Italic 0 0 0 100 T
(S) t
183 96 /Times-Roman 0 0 0 100 T
(\() t
216 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
288 96 /Times-Roman 0 0 0 100 T
(\)) t
345 96 /Symbol 0 0 0 100 T
(\256) t
467 96 /Times-Italic 0 0 0 100 T
(S) t
518 96 /Times-Roman 0 0 0 100 T
(\() t
551 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(D) t
632 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
262 485 :M
f0_10 sf
-.015(, so that every visual schema can be uniquely interpreted as)A
502 485 :M
.056 .006( a)J
91 500 :M
-.058(data schema.)A
78 530 :M
-.024(Clearly, not all such functions )A
201 519 7 16 rC
211 530 :M
f2_12 sf
( )S
201 519 :M
psb
currentpoint pse
202 520 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
14 83 /Times-Italic 0 0 0 100 T
(f) t
pse
psb
pse
gR
gS 0 38 552 676 rC
208 530 :M
f0_10 sf
-.012( that satisfy these properties are useful. Many are arbitrary)A
444 530 :M
.541 .054( mappings, with)J
60 545 :M
1.135 .113(no obvious correspondence between the data schema and the visual schema.)J
385 545 :M
2.151 .215( Our goal is to establish a)J
60 560 :M
-.006(relationship between the members of )A
210 547 24 19 rC
220 558 :M
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
210 547 :M
psb
currentpoint pse
211 548 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(S) t
51 96 /Times-Roman 0 0 0 100 T
(\() t
84 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(D) t
165 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
234 560 :M
f0_10 sf
-.11( and )A
253 547 23 19 rC
263 558 :M
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
253 547 :M
psb
currentpoint pse
254 548 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(S) t
51 96 /Times-Roman 0 0 0 100 T
(\() t
84 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
156 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
276 560 :M
f0_10 sf
( so)S
.575 .057( that when users view a visual schema, they can infer)J
60 575 :M
-.022(the data schema to which it maps. )A
198 575 :M
.578 .058( Thus, )J
227 565 10 14 rC
238 576 :M
f2_12 sf
( )S
227 565 :M
psb
currentpoint pse
228 566 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
7 38 /Times-Italic 0 0 0 50 T
(f) t
pse
psb
pse
gR
gS 0 38 552 676 rC
237 575 :M
f0_10 sf
.602 .06( should be derived from a correspondence between the features of)J
60 590 :M
1.138 .114(the data and visual models, which would enforce a structural similarity between data schemas)J
461 590 :M
1.892 .189( and visual)J
60 605 :M
.958 .096(schemas. This correspondence is a )J
213 605 :M
f2_10 sf
.538 .054(visual metaphor)J
280 605 :M
f0_10 sf
1.254 .125( and is formally introduced in Section 4.3. A formal)J
60 620 :M
-.007(description of the features of data and visual models is given in the next subsection.)A
78 635 :M
1.124 .112(This problem formulation was motivated by the very similar)J
336 635 :M
1.83 .183( problem of mapping schemas and data)J
60 650 :M
1.03 .103(between different data models in a heterogeneous database system [MIR93]. The specific similarities and)J
60 665 :M
-.004(differences between the two problems are beyond the scope of this thesis.)A
endp
%%Page: 3 3
%%BeginPageSetup
initializepage
(; page: 3 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(26)S
gR
gS 0 43 552 630 rC
60 55 :M
f1_12 sf
-.018(4.2.2 A Formalism for Data/Visual Models and Schemas)A
78 85 :M
f0_10 sf
.163 .016(In this subsection, we present a meta-model that can capture a large and interesting class of data and visual)J
60 100 :M
-.008(models. Using this meta-model, we can describe the features of any model in this)A
388 100 :M
.569 .057( class and discuss the relative)J
60 115 :M
.76 .076(information capacity of any pair of models. Example models described in this meta-model are given in the)J
60 130 :M
-.005(following subsection.)A
60 160 :M
f1_10 sf
-.03(Definition 1)A
f0_10 sf
-.028( Every data or visual model )A
f4_14 sf
(M)S
237 160 :M
f0_10 sf
-.026( can be seen as a sextuple )A
342 160 :M
f4_14 sf
.241 .024(M =
)J
465 160 :M
f0_10 sf
.563 .056( defined as)J
60 175 :M
-.034(follows: )A
78 205 :M
f4_14 sf
(P)S
91 205 :M
f0_10 sf
.079 .008(is a finite set of identifiers for the concepts in )J
277 205 :M
f4_14 sf
(M)S
289 205 :M
f0_10 sf
.656 .066(. Each such concept )J
378 194 8 16 rC
388 205 :M
f2_12 sf
( )S
378 194 :M
psb
currentpoint pse
379 195 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
pse
psb
pse
gR
gS 0 43 552 630 rC
386 205 :M
f0_10 sf
.608 .061( is associated with a \(possibly)J
91 220 :M
-.008(infinite\) set of globally unique ids )A
229 207 21 19 rC
239 218 :M
f2_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
229 207 :M
psb
currentpoint pse
230 208 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(I) t
44 96 /Times-Roman 0 0 0 100 T
(\() t
77 96 /Times-Italic 0 0 0 100 T
(P) t
137 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 43 552 630 rC
250 220 :M
f4_10 sf
( )S
f0_10 sf
-.018(that can be used to identify concept instances of type )A
466 209 8 16 rC
476 220 :M
f2_12 sf
( )S
466 209 :M
psb
currentpoint pse
467 210 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
pse
psb
pse
gR
gS 0 43 552 630 rC
474 220 :M
f0_10 sf
(.)S
477 216 :M
f4_10 sf
(3)S
78 235 :M
f4_14 sf
(A)S
91 235 :M
f0_10 sf
-.011(is a finite set of identifiers for property names \(i.e., attributes\) of concepts in )A
399 235 :M
f4_14 sf
(M)S
411 235 :M
f0_10 sf
(.)S
414 235 :M
.507 .051( Each element of )J
f4_14 sf
(A)S
500 235 :M
f0_10 sf
.694 .069( is)J
91 250 :M
.615 .061(of the form )J
141 239 18 16 rC
151 250 :M
f0_12 sf
( )S
f2_12 sf
( )S
141 239 :M
psb
currentpoint pse
142 240 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
60 83 /Times-Roman 0 0 0 100 T
(.) t
88 83 /Times-Italic 0 0 0 100 T
(A) t
pse
psb
pse
gR
gS 0 43 552 630 rC
159 250 :M
f0_10 sf
.398 .04(, where )J
193 237 31 19 rC
203 248 :M
f4_14 sf
( )S
f0_12 sf
( )S
f3_12 sf
( )S
f2_12 sf
( )S
193 237 :M
psb
currentpoint pse
194 238 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(P) t
84 96 /Symbol 0 0 0 100 T
(\316) t
180 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
pse
psb
pse
gR
gS 0 43 552 630 rC
224 250 :M
f0_10 sf
.651 .065( and )J
245 239 8 16 rC
255 250 :M
f2_12 sf
( )S
245 239 :M
psb
currentpoint pse
246 240 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
3 83 /Times-Italic 0 0 0 100 T
(A) t
pse
psb
pse
gR
gS 0 43 552 630 rC
253 250 :M
f0_10 sf
1.068 .107( captures some attribute that all concept instances of type )J
502 239 8 16 rC
512 250 :M
f2_12 sf
( )S
502 239 :M
psb
currentpoint pse
503 240 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
pse
psb
pse
gR
gS 0 43 552 630 rC
91 265 :M
f0_10 sf
-.037(should have. We use )A
179 254 18 16 rC
189 265 :M
f0_12 sf
( )S
f2_12 sf
( )S
179 254 :M
psb
currentpoint pse
180 255 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
60 83 /Times-Roman 0 0 0 100 T
(.) t
88 83 /Times-Italic 0 0 0 100 T
(A) t
pse
psb
pse
gR
gS 0 43 552 630 rC
197 265 :M
f0_10 sf
-.006( instead of just )A
258 254 8 16 rC
268 265 :M
f2_12 sf
( )S
258 254 :M
psb
currentpoint pse
259 255 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
3 83 /Times-Italic 0 0 0 100 T
(A) t
pse
psb
pse
gR
gS 0 43 552 630 rC
266 265 :M
f0_10 sf
-.014( because the same attribute name may be)A
430 265 :M
.686 .069( used by more than)J
91 280 :M
(one concept. )S
78 295 :M
f4_14 sf
(V)S
91 295 :M
f0_10 sf
-.015(is a \(possibly infinite\) set of identifiers for values of properties of concepts in )A
f4_14 sf
(M)S
414 295 :M
f0_10 sf
-.045(. Each element)A
476 295 :M
.178 .018( of )J
f4_14 sf
(V)S
500 295 :M
f0_10 sf
.694 .069( is)J
91 310 :M
.962 .096(a value binding of the form )J
212 299 43 16 rC
222 310 :M
f0_12 sf
( )S
f2_12 sf
( )S
212 299 :M
psb
currentpoint pse
213 300 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
60 83 /Times-Roman 0 0 0 100 T
(.) t
88 83 /Times-Italic 0 0 0 100 T
(A) t
172 83 /Times-Roman 0 0 0 100 T
(==) t
308 83 /Times-Italic 0 0 0 100 T
(v) t
pse
psb
pse
gR
gS 0 43 552 630 rC
255 310 :M
f0_10 sf
1.139 .114(, where )J
291 297 42 19 rC
301 308 :M
f4_12 sf
( )S
304 308 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
291 297 :M
psb
currentpoint pse
292 298 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(P) t
60 96 /Times-Roman 0 0 0 100 T
(.) t
88 96 /Times-Italic 0 0 0 100 T
(A) t
172 96 /Symbol 0 0 0 100 T
(\316) t
270 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
pse
psb
pse
gR
gS 0 43 552 630 rC
333 310 :M
f0_10 sf
1.484 .148( and )J
356 299 6 16 rC
366 310 :M
f2_12 sf
( )S
356 299 :M
psb
currentpoint pse
357 300 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(v) t
pse
psb
pse
gR
gS 0 43 552 630 rC
362 310 :M
f0_10 sf
1.317 .132( captures some value that the )J
492 299 18 16 rC
502 310 :M
f0_12 sf
( )S
f2_12 sf
( )S
492 299 :M
psb
currentpoint pse
493 300 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
60 83 /Times-Roman 0 0 0 100 T
(.) t
88 83 /Times-Italic 0 0 0 100 T
(A) t
pse
psb
pse
gR
gS 0 43 552 630 rC
91 325 :M
f0_10 sf
(attribute may have. The values )S
219 318 9 8 rC
230 329 :M
f2_12 sf
( )S
219 318 :M
psb
currentpoint pse
220 319 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 25 /Times-Italic 0 0 0 50 T
(v) t
pse
psb
pse
gR
gS 0 43 552 630 rC
228 325 :M
f0_10 sf
-.011( may be drawn from sets of basic values \(such as integers)A
458 325 :M
.327 .033( or character)J
91 340 :M
-.014(strings\), or the sets of concept instances.)A
78 355 :M
f4_14 sf
(Q)S
91 355 :M
f0_10 sf
-.071(is a function )A
143 342 58 19 rC
153 353 :M
f3_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
143 342 :M
psb
currentpoint pse
144 343 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
104 96 /Times-Roman 0 0 0 100 T
(:) t
157 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
247 96 /Symbol 0 0 0 100 T
(\256) t
369 96 /Times-Roman 0 0 0 100 T
(2) t
432 56 /ZapfChancery-MediumItalic 0 0 0 75 T
(A) t
pse
psb
pse
gR
gS 0 43 552 630 rC
201 355 :M
f0_10 sf
-.002(, indicating for each concept )A
317 342 31 19 rC
327 353 :M
f4_14 sf
( )S
f0_12 sf
( )S
f3_12 sf
( )S
f2_12 sf
( )S
317 342 :M
psb
currentpoint pse
318 343 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(P) t
84 96 /Symbol 0 0 0 100 T
(\316) t
180 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
pse
psb
pse
gR
gS 0 43 552 630 rC
348 355 :M
f0_10 sf
( the set of)S
.347 .035( attribute identifiers in )J
483 355 :M
f4_14 sf
(A)S
492 355 :M
f0_10 sf
.361 .036( that)J
91 370 :M
-.015(correspond to )A
148 359 8 16 rC
158 370 :M
f2_12 sf
( )S
148 359 :M
psb
currentpoint pse
149 360 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
pse
psb
pse
gR
gS 0 43 552 630 rC
156 370 :M
f0_10 sf
(.)S
78 385 :M
f4_14 sf
(R)S
91 385 :M
f0_10 sf
-.071(is a function )A
143 372 60 19 rC
153 383 :M
f3_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
143 372 :M
psb
currentpoint pse
144 373 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
106 96 /Times-Roman 0 0 0 100 T
(:) t
164 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
260 96 /Symbol 0 0 0 100 T
(\256) t
382 96 /Times-Roman 0 0 0 100 T
(2) t
441 56 /ZapfChancery-MediumItalic 0 0 0 75 T
(V) t
pse
psb
pse
gR
gS 0 43 552 630 rC
203 385 :M
f0_10 sf
(, indicating for)S
.302 .03( each attribute )J
324 372 42 19 rC
334 383 :M
f4_12 sf
( )S
337 383 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
324 372 :M
psb
currentpoint pse
325 373 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(P) t
60 96 /Times-Roman 0 0 0 100 T
(.) t
88 96 /Times-Italic 0 0 0 100 T
(A) t
172 96 /Symbol 0 0 0 100 T
(\316) t
270 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
pse
psb
pse
gR
gS 0 43 552 630 rC
366 385 :M
f0_10 sf
.584 .058( the set of value bindings in )J
f4_10 sf
.331(V)A
f0_10 sf
.646 .065( that)J
91 400 :M
(can be assigned to it. To capture the set of actual values instead of the value bindings \(e.g.,)S
( )S
460 389 6 16 rC
470 400 :M
f2_12 sf
( )S
460 389 :M
psb
currentpoint pse
461 390 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(v) t
pse
psb
pse
gR
gS 0 43 552 630 rC
466 400 :M
f0_10 sf
.45 .045( instead of)J
91 404 43 16 rC
101 415 :M
f0_12 sf
( )S
f2_12 sf
( )S
91 404 :M
psb
currentpoint pse
92 405 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
60 83 /Times-Roman 0 0 0 100 T
(.) t
88 83 /Times-Italic 0 0 0 100 T
(A) t
172 83 /Times-Roman 0 0 0 100 T
(==) t
308 83 /Times-Italic 0 0 0 100 T
(v) t
pse
psb
pse
gR
gS 0 43 552 630 rC
134 415 :M
f0_10 sf
-.026(\) the function )A
190 402 15 19 rC
200 413 :M
f0_7 sf
( )S
202 413 :M
f4_14 sf
( )S
190 402 :M
psb
currentpoint pse
191 403 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
89 51 /Times-Roman 0 0 0 58 T
(*) t
pse
psb
pse
gR
gS 0 43 552 630 rC
205 415 :M
f0_10 sf
-.061( is used, where )A
267 402 175 19 rC
277 413 :M
f3_12 sf
-.29( )A
f2_12 sf
-.29( )A
f0_7 sf
( )S
285 413 :M
f4_14 sf
( )S
267 402 :M
psb
currentpoint pse
268 403 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
89 51 /Times-Roman 0 0 0 58 T
(*) t
118 96 /Times-Roman 0 0 0 100 T
(\() t
151 96 /Times-Italic 0 0 0 100 T
(P) t
211 96 /Times-Roman 0 0 0 100 T
(.) t
239 96 /Times-Italic 0 0 0 100 T
(A) t
299 96 /Times-Roman 0 0 0 100 T
(\)) t
356 96 /Times-Roman 0 0 0 100 T
(=) t
436 96 /Times-Roman 0 0 0 100 T
({) t
484 96 /Times-Italic 0 0 0 100 T
(v) t
552 96 /Times-Roman 0 0 0 100 T
(|) t
620 96 /Times-Italic 0 0 0 100 T
(P) t
680 96 /Times-Roman 0 0 0 100 T
(.) t
708 96 /Times-Italic 0 0 0 100 T
(A) t
792 96 /Times-Roman 0 0 0 100 T
(==) t
928 96 /Times-Italic 0 0 0 100 T
(v) t
1020 96 /Symbol 0 0 0 100 T
(\316) t
1112 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
1194 96 /Times-Roman 0 0 0 100 T
(\() t
1227 96 /Times-Italic 0 0 0 100 T
(P) t
1287 96 /Times-Roman 0 0 0 100 T
(.) t
1315 96 /Times-Italic 0 0 0 100 T
(A) t
1375 96 /Times-Roman 0 0 0 100 T
(\)}) t
pse
psb
pse
gR
gS 0 43 552 630 rC
442 415 :M
f0_10 sf
( )S
78 430 :M
f4_14 sf
(C)S
91 430 :M
f0_10 sf
.687 .069(is a finite set of constraints, i.e., rules that must be satisfied by any schema expressed in )J
463 430 :M
f4_14 sf
(M)S
475 430 :M
f0_10 sf
1.343 .134(. These)J
91 445 :M
-.015(constraints are formulas in some prespecified language )A
f4_14 sf
(L)S
f0_10 sf
-.015( and use elements that refer to identifiers)A
484 445 :M
.531 .053( in )J
499 445 :M
f4_14 sf
(P)S
507 445 :M
f0_10 sf
(,)S
91 460 :M
f4_14 sf
-.265(A, V)A
115 460 :M
f0_10 sf
(.)S
60 490 :M
-.041(Note that, by the way )A
f4_14 sf
(A)S
157 490 :M
f0_10 sf
-.191( and )A
f4_14 sf
(V)S
185 490 :M
f0_10 sf
( were defined, if )S
253 479 30 16 rC
263 490 :M
f0_12 sf
( )S
f3_12 sf
( )S
f2_12 sf
( )S
253 479 :M
psb
currentpoint pse
254 480 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
84 83 /Symbol 0 0 0 100 T
(\271) t
162 83 /Times-Italic 0 0 0 100 T
(P) t
222 83 /Symbol 0 0 0 100 T
(\242) t
pse
psb
pse
gR
gS 0 43 552 630 rC
283 490 :M
f0_10 sf
-.043( then )A
305 477 25 19 rC
315 488 :M
f2_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
305 477 :M
psb
currentpoint pse
306 478 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
80 96 /Times-Roman 0 0 0 100 T
(\() t
113 96 /Times-Italic 0 0 0 100 T
(P) t
173 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 43 552 630 rC
330 490 :M
f0_10 sf
-.11( and )A
349 477 28 19 rC
359 488 :M
f3_12 sf
( )S
f2_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
349 477 :M
psb
currentpoint pse
350 478 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
80 96 /Times-Roman 0 0 0 100 T
(\() t
113 96 /Times-Italic 0 0 0 100 T
(P) t
173 96 /Symbol 0 0 0 100 T
(\242) t
197 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 43 552 630 rC
377 490 :M
f0_10 sf
( are disjoint, and if)S
( )S
456 479 54 16 rC
466 490 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
456 479 :M
psb
currentpoint pse
457 480 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
60 83 /Times-Roman 0 0 0 100 T
(.) t
88 83 /Times-Italic 0 0 0 100 T
(A) t
172 83 /Symbol 0 0 0 100 T
(\271) t
250 83 /Times-Italic 0 0 0 100 T
(P) t
310 83 /Symbol 0 0 0 100 T
(\242) t
334 83 /Times-Roman 0 0 0 100 T
(.) t
362 83 /Times-Italic 0 0 0 100 T
(A) t
422 83 /Symbol 0 0 0 100 T
(\242) t
pse
psb
pse
gR
gS 0 43 552 630 rC
60 505 :M
f0_10 sf
.202 .02(then )J
81 492 36 19 rC
91 503 :M
f2_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
81 492 :M
psb
currentpoint pse
82 493 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
82 96 /Times-Roman 0 0 0 100 T
(\() t
115 96 /Times-Italic 0 0 0 100 T
(P) t
175 96 /Times-Roman 0 0 0 100 T
(.) t
203 96 /Times-Italic 0 0 0 100 T
(A) t
263 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 43 552 630 rC
117 505 :M
f0_10 sf
.651 .065( and )J
138 492 42 19 rC
148 503 :M
f3_12 sf
( )S
f2_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
138 492 :M
psb
currentpoint pse
139 493 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
82 96 /Times-Roman 0 0 0 100 T
(\() t
115 96 /Times-Italic 0 0 0 100 T
(P) t
175 96 /Symbol 0 0 0 100 T
(\242) t
199 96 /Times-Roman 0 0 0 100 T
(.) t
227 96 /Times-Italic 0 0 0 100 T
(A) t
287 96 /Symbol 0 0 0 100 T
(\242) t
311 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 43 552 630 rC
180 505 :M
f0_10 sf
.967 .097( are disjoint. Also note that concept instances are essentially complex objects,)J
60 520 :M
-.005(since some of their attributes can take values that are concept instances themselves.)A
78 535 :M
(Most of)S
.525 .053( the common data models fall naturally in this meta-model. For example, consider the relational)J
60 550 :M
.754 .075(model. It has )J
122 550 :M
f2_10 sf
-.069(relations)A
158 550 :M
f0_10 sf
.554 .055( and )J
f2_10 sf
.273(attributes)A
f0_10 sf
.84 .084( as its concepts, each )J
f2_10 sf
.322(relation)A
347 550 :M
f0_10 sf
.739 .074( has a )J
f2_10 sf
.781(name)A
400 550 :M
f0_10 sf
1.311 .131(, and each )J
449 550 :M
f2_10 sf
.187(attribute)A
f0_10 sf
.445 .044( has a)J
60 565 :M
f2_10 sf
-.219(name)A
82 565 :M
f0_10 sf
(, a)S
( )S
95 565 :M
f2_10 sf
-.218(type)A
112 565 :M
f0_10 sf
.574 .057(, and a )J
144 565 :M
f2_10 sf
-.095(relation)A
176 565 :M
f0_10 sf
.628 .063( with which it is associated. Fully specified examples of data and visual models)J
60 580 :M
.775 .077(may be found in Section 4.2.4. The meta-model may be enhanced with several additional characteristics of)J
60 595 :M
.721 .072(models in a straightforward way, e.g., with an identifier for the name of each instance of the model, but we)J
60 610 :M
-.001(avoid that for simplicity of presentation.)A
78 625 :M
-.011(As defined above, a data schema or visual schema may be considered as an instantiation)A
431 625 :M
.705 .071( of a data or visual)J
60 640 :M
-.004(model, respectively. This is formally defined as follows:)A
gR
gS 0 0 552 730 rC
60 675.5 -.5 .5 172.5 675 .5 60 675 @a
0 679 552 30 rC
78 687 :M
f0_9 sf
(3)S
f0_10 sf
0 4 rm
1.375 .137(The symbols )J
0 -4 rm
142 680 8 16 rC
152 691 :M
f2_12 sf
( )S
142 680 :M
psb
currentpoint pse
143 681 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
pse
psb
pse
gR
gS 0 679 552 30 rC
150 691 :M
f0_10 sf
1.441 .144( and )J
f4_14 sf
(P)S
183 691 :M
f0_10 sf
2.321 .232( are used to denote concepts and sets of concepts because in an earlier)J
60 705 :M
-.009(presentation of this work, concepts were referred to as \322types of primitives.\323)A
endp
%%Page: 4 4
%%BeginPageSetup
initializepage
(; page: 4 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(27)S
gR
gS 0 46 552 180 rC
60 58 :M
f1_10 sf
-.02(Definition 2)A
f0_10 sf
-.023( A schema )A
157 47 9 16 rC
168 58 :M
f2_12 sf
( )S
157 47 :M
psb
currentpoint pse
158 48 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(S) t
pse
psb
pse
gR
gS 0 46 552 180 rC
166 58 :M
f0_10 sf
-.069( of a model )A
214 58 :M
f4_14 sf
(M)S
226 58 :M
f0_10 sf
-.011( is defined as follows: )A
78 88 :M
-.008(\245 For every )A
125 75 31 19 rC
135 86 :M
f4_14 sf
( )S
f0_12 sf
( )S
f3_12 sf
( )S
f2_12 sf
( )S
125 75 :M
psb
currentpoint pse
126 76 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(P) t
84 96 /Symbol 0 0 0 100 T
(\316) t
180 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
pse
psb
pse
gR
gS 0 46 552 180 rC
156 88 :M
f0_10 sf
-.035(, there is a finite set )A
237 75 50 19 rC
247 86 :M
f4_12 sf
( )S
250 86 :M
f3_12 sf
( )S
f2_12 sf
( )S
f0_12 sf
( )S
237 75 :M
psb
currentpoint pse
238 76 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Roman 0 0 0 100 T
([) t
33 96 /Times-Italic 0 0 0 100 T
(P) t
93 96 /Times-Roman 0 0 0 100 T
(]) t
150 96 /Symbol 0 0 0 100 T
(\315) t
242 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(I) t
286 96 /Times-Roman 0 0 0 100 T
(\() t
319 96 /Times-Italic 0 0 0 100 T
(P) t
379 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 46 552 180 rC
287 88 :M
f0_10 sf
-.414( of)A
298 88 :M
.554 .055( concept instances of type )J
409 77 8 16 rC
419 88 :M
f2_12 sf
( )S
409 77 :M
psb
currentpoint pse
410 78 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
pse
psb
pse
gR
gS 0 46 552 180 rC
417 88 :M
f0_10 sf
.59 .059( that appear in schema)J
91 92 7 16 rC
101 103 :M
f2_12 sf
( )S
91 92 :M
psb
currentpoint pse
92 93 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(S) t
pse
psb
pse
gR
gS 0 46 552 180 rC
98 103 :M
f0_10 sf
(.)S
78 118 :M
-.008(\245 For every )A
125 105 42 19 rC
135 116 :M
f4_12 sf
( )S
138 116 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
125 105 :M
psb
currentpoint pse
126 106 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(P) t
60 96 /Times-Roman 0 0 0 100 T
(.) t
88 96 /Times-Italic 0 0 0 100 T
(A) t
172 96 /Symbol 0 0 0 100 T
(\316) t
270 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
pse
psb
pse
gR
gS 0 46 552 180 rC
167 118 :M
f0_10 sf
-.025(, there is a total function )A
267 105 116 19 rC
277 116 :M
f4_14 sf
( )S
f3_12 sf
( )S
f2_12 sf
( )S
f0_12 sf
( )S
267 105 :M
psb
currentpoint pse
268 106 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Roman 0 0 0 100 T
([) t
33 96 /Times-Italic 0 0 0 100 T
(P) t
93 96 /Times-Roman 0 0 0 100 T
(.) t
121 96 /Times-Italic 0 0 0 100 T
(A) t
181 96 /Times-Roman 0 0 0 100 T
(]) t
238 96 /Times-Roman 0 0 0 100 T
(:) t
290 96 /Times-Roman 0 0 0 100 T
([) t
323 96 /Times-Italic 0 0 0 100 T
(P) t
383 96 /Times-Roman 0 0 0 100 T
(]) t
440 96 /Symbol 0 0 0 100 T
(\256) t
562 96 /Times-Roman 0 0 0 100 T
([) t
595 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
684 51 /Times-Roman 0 0 0 58 T
(*) t
713 96 /Times-Roman 0 0 0 100 T
(\() t
746 96 /Times-Italic 0 0 0 100 T
(P) t
806 96 /Times-Roman 0 0 0 100 T
(.) t
834 96 /Times-Italic 0 0 0 100 T
(A) t
894 96 /Times-Roman 0 0 0 100 T
(\)]) t
pse
psb
pse
gR
gS 0 46 552 180 rC
383 118 :M
f0_10 sf
-.025(, which determines the)A
474 118 :M
.363 .036( value of)J
91 133 :M
.987 .099(the )J
108 122 18 16 rC
118 133 :M
f0_12 sf
( )S
f2_12 sf
( )S
108 122 :M
psb
currentpoint pse
109 123 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
60 83 /Times-Roman 0 0 0 100 T
(.) t
88 83 /Times-Italic 0 0 0 100 T
(A) t
pse
psb
pse
gR
gS 0 46 552 180 rC
126 133 :M
f0_10 sf
1.244 .124( attribute for every concept instance in )J
296 122 16 16 rC
306 133 :M
f2_12 sf
( )S
f0_12 sf
( )S
296 122 :M
psb
currentpoint pse
297 123 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
([) t
33 83 /Times-Italic 0 0 0 100 T
(P) t
93 83 /Times-Roman 0 0 0 100 T
(]) t
pse
psb
pse
gR
gS 0 46 552 180 rC
312 133 :M
f0_10 sf
1.515 .151(. The )J
344 120 48 19 rC
354 131 :M
f2_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
344 120 :M
psb
currentpoint pse
345 121 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Roman 0 0 0 100 T
([) t
33 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
122 51 /Times-Roman 0 0 0 58 T
(*) t
151 96 /Times-Roman 0 0 0 100 T
(\() t
184 96 /Times-Italic 0 0 0 100 T
(P) t
244 96 /Times-Roman 0 0 0 100 T
(.) t
272 96 /Times-Italic 0 0 0 100 T
(A) t
332 96 /Times-Roman 0 0 0 100 T
(\)]) t
pse
psb
pse
gR
gS 0 46 552 180 rC
392 133 :M
f0_10 sf
1.399 .14( set is defined such that, if)J
91 135 77 19 rC
101 146 :M
f3_12 sf
( )S
f2_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
91 135 :M
psb
currentpoint pse
92 136 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
91 55 /ZapfChancery-MediumItalic 0 0 0 75 T
(*) t
122 96 /Times-Roman 0 0 0 100 T
(\() t
155 96 /Times-Italic 0 0 0 100 T
(P) t
215 96 /Times-Roman 0 0 0 100 T
(.) t
243 96 /Times-Italic 0 0 0 100 T
(A) t
303 96 /Times-Roman 0 0 0 100 T
(\)) t
360 96 /Times-Roman 0 0 0 100 T
(=) t
440 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(I) t
484 96 /Times-Roman 0 0 0 100 T
(\() t
517 96 /Times-Italic 0 0 0 100 T
(P) t
577 96 /Symbol 0 0 0 100 T
(\242) t
601 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 46 552 180 rC
168 148 :M
f0_10 sf
-.076(, for some )A
211 135 34 19 rC
221 146 :M
f4_14 sf
( )S
f0_12 sf
( )S
f3_12 sf
( )S
f2_12 sf
( )S
211 135 :M
psb
currentpoint pse
212 136 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(P) t
66 98 /Symbol 0 0 0 100 T
(\242) t
106 98 /Symbol 0 0 0 100 T
(\316) t
197 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
pse
psb
pse
gR
gS 0 46 552 180 rC
245 148 :M
f0_10 sf
-.119(, then )A
270 135 76 19 rC
280 146 :M
f2_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
270 135 :M
psb
currentpoint pse
271 136 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Roman 0 0 0 100 T
([) t
33 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
122 51 /Times-Roman 0 0 0 58 T
(*) t
151 96 /Times-Roman 0 0 0 100 T
(\() t
184 96 /Times-Italic 0 0 0 100 T
(P) t
244 96 /Times-Roman 0 0 0 100 T
(.) t
272 96 /Times-Italic 0 0 0 100 T
(A) t
332 96 /Times-Roman 0 0 0 100 T
(\)]) t
422 96 /Times-Roman 0 0 0 100 T
(=) t
502 96 /Times-Roman 0 0 0 100 T
([) t
535 96 /Times-Italic 0 0 0 100 T
(P) t
595 96 /Times-Roman 0 0 0 100 T
(]) t
pse
psb
pse
gR
gS 0 46 552 180 rC
346 148 :M
f0_10 sf
-.045(. Otherwise, )A
400 135 101 19 rC
410 146 :M
f2_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
400 135 :M
psb
currentpoint pse
401 136 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Roman 0 0 0 100 T
([) t
33 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
122 51 /Times-Roman 0 0 0 58 T
(*) t
151 96 /Times-Roman 0 0 0 100 T
(\() t
184 96 /Times-Italic 0 0 0 100 T
(P) t
244 96 /Times-Roman 0 0 0 100 T
(.) t
272 96 /Times-Italic 0 0 0 100 T
(A) t
332 96 /Times-Roman 0 0 0 100 T
(\)]) t
422 96 /Times-Roman 0 0 0 100 T
(=) t
502 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
591 51 /Times-Roman 0 0 0 58 T
(*) t
620 96 /Times-Roman 0 0 0 100 T
(\() t
653 96 /Times-Italic 0 0 0 100 T
(P) t
713 96 /Times-Roman 0 0 0 100 T
(.) t
741 96 /Times-Italic 0 0 0 100 T
(A) t
801 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 46 552 180 rC
501 148 :M
f0_10 sf
(.)S
78 163 :M
-.008(\245 For every )A
125 150 29 19 rC
135 161 :M
f4_14 sf
( )S
f0_12 sf
( )S
f3_12 sf
( )S
f2_12 sf
( )S
125 150 :M
psb
currentpoint pse
126 151 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(c) t
71 98 /Symbol 0 0 0 100 T
(\316) t
161 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
pse
psb
pse
gR
gS 0 46 552 180 rC
154 163 :M
f0_10 sf
-.023(, there is a constraint )A
239 152 14 16 rC
249 163 :M
f2_12 sf
( )S
f0_12 sf
( )S
239 152 :M
psb
currentpoint pse
240 153 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
([) t
33 83 /Times-Italic 0 0 0 100 T
(c) t
77 83 /Times-Roman 0 0 0 100 T
(]) t
pse
psb
pse
gR
gS 0 46 552 180 rC
253 163 :M
f0_10 sf
-.029(, constructed from )A
329 152 6 16 rC
339 163 :M
f2_12 sf
( )S
329 152 :M
psb
currentpoint pse
330 153 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(c) t
pse
psb
pse
gR
gS 0 46 552 180 rC
335 163 :M
f0_10 sf
.609 .061( by replacing every )J
418 150 31 19 rC
428 161 :M
f4_14 sf
( )S
f0_12 sf
( )S
f3_12 sf
( )S
f2_12 sf
( )S
418 150 :M
psb
currentpoint pse
419 151 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(P) t
84 96 /Symbol 0 0 0 100 T
(\316) t
180 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
pse
psb
pse
gR
gS 0 46 552 180 rC
449 163 :M
f0_10 sf
.869 .087( by )J
466 152 16 16 rC
476 163 :M
f2_12 sf
( )S
f0_12 sf
( )S
466 152 :M
psb
currentpoint pse
467 153 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
([) t
33 83 /Times-Italic 0 0 0 100 T
(P) t
93 83 /Times-Roman 0 0 0 100 T
(]) t
pse
psb
pse
gR
gS 0 46 552 180 rC
482 163 :M
f0_10 sf
.497 .05(, every)J
91 165 42 19 rC
101 176 :M
f4_12 sf
( )S
104 176 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
91 165 :M
psb
currentpoint pse
92 166 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(P) t
60 96 /Times-Roman 0 0 0 100 T
(.) t
88 96 /Times-Italic 0 0 0 100 T
(A) t
172 96 /Symbol 0 0 0 100 T
(\316) t
270 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
pse
psb
pse
gR
gS 0 46 552 180 rC
133 178 :M
f0_10 sf
( by )S
148 167 26 16 rC
158 178 :M
f2_12 sf
( )S
f0_12 sf
( )S
148 167 :M
psb
currentpoint pse
149 168 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
([) t
33 83 /Times-Italic 0 0 0 100 T
(P) t
93 83 /Times-Roman 0 0 0 100 T
(.) t
121 83 /Times-Italic 0 0 0 100 T
(A) t
181 83 /Times-Roman 0 0 0 100 T
(]) t
pse
psb
pse
gR
gS 0 46 552 180 rC
174 178 :M
f0_10 sf
-.058(, and every )A
221 167 43 16 rC
231 178 :M
f0_12 sf
( )S
f2_12 sf
( )S
221 167 :M
psb
currentpoint pse
222 168 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
60 83 /Times-Roman 0 0 0 100 T
(.) t
88 83 /Times-Italic 0 0 0 100 T
(A) t
172 83 /Times-Roman 0 0 0 100 T
(==) t
308 83 /Times-Italic 0 0 0 100 T
(v) t
pse
psb
pse
gR
gS 0 46 552 180 rC
264 178 :M
f0_10 sf
( by )S
279 167 6 16 rC
289 178 :M
f2_12 sf
( )S
279 167 :M
psb
currentpoint pse
280 168 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(v) t
pse
psb
pse
gR
gS 0 46 552 180 rC
285 178 :M
f0_10 sf
-.017(. All these constraints are satisfied by the schema.)A
60 208 :M
-.006(In the following table, we summarize the notations introduced in Definitions 1 and 2: )A
gR
1 G
gS 95 226 74 18 rC
95 226 74 18 rF
gR
0 G
gS 0 0 552 730 rC
95 227 -1 1 169 226 1 95 226 @a
-.25 -.25 168.25 243.25 .25 .25 168 226 @b
95 244 -1 1 169 243 1 95 243 @a
-1 -1 96 244 1 1 95 226 @b
98 229 68 12 rC
102 238 :M
f0_12 sf
-.142(Notation)A
gR
1 G
gS 168 226 307 18 rC
168 226 307 18 rF
gR
0 G
gS 0 0 552 730 rC
168 227 -1 1 475 226 1 168 226 @a
-1 -1 475 244 1 1 474 226 @b
168 244 -1 1 475 243 1 168 243 @a
-.25 -.25 168.25 243.25 .25 .25 168 226 @b
171 229 301 12 rC
175 238 :M
f0_12 sf
-.098(Explanation)A
gR
1 G
gS 95 243 74 18 rC
95 243 74 18 rF
gR
0 G
gS 0 0 552 730 rC
95 244 -1 1 169 243 1 95 243 @a
-.25 -.25 168.25 260.25 .25 .25 168 243 @b
-1 -1 96 261 1 1 95 243 @b
98 246 68 12 rC
102 255 :M
f4_12 sf
(P)S
gR
1 G
gS 168 243 307 18 rC
168 243 307 18 rF
gR
0 G
gS 0 0 552 730 rC
168 244 -1 1 475 243 1 168 243 @a
-1 -1 475 261 1 1 474 243 @b
-.25 -.25 168.25 260.25 .25 .25 168 243 @b
171 246 301 12 rC
175 255 :M
f0_12 sf
-.053(The set of concepts)A
gR
1 G
gS 95 260 74 18 rC
95 260 74 18 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 168.25 277.25 .25 .25 168 260 @b
-1 -1 96 278 1 1 95 260 @b
102 263 11 10 rC
113 274 :M
f2_12 sf
( )S
102 263 :M
psb
currentpoint pse
103 264 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 33 /Times-Italic 0 0 0 50 T
(P) t
pse
psb
pse
gR
1 G
gS 168 260 307 18 rC
168 260 307 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 475 278 1 1 474 260 @b
-.25 -.25 168.25 277.25 .25 .25 168 260 @b
171 263 301 12 rC
175 272 :M
f0_12 sf
-.122(A concept)A
gR
1 G
gS 95 277 74 18 rC
95 277 74 18 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 168.25 294.25 .25 .25 168 277 @b
-1 -1 96 295 1 1 95 277 @b
102 280 21 12 rC
112 287 :M
f2_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
102 276 :M
psb
currentpoint pse
103 277 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(I) t
44 96 /Times-Roman 0 0 0 100 T
(\() t
77 96 /Times-Italic 0 0 0 100 T
(P) t
137 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
1 G
gS 168 277 307 18 rC
168 277 307 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 475 295 1 1 474 277 @b
-.25 -.25 168.25 294.25 .25 .25 168 277 @b
171 280 301 12 rC
175 289 :M
f0_12 sf
-.011(The set of identifiers for concept instances of type )A
418 280 11 10 rC
429 291 :M
f2_12 sf
( )S
418 280 :M
psb
currentpoint pse
419 281 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 33 /Times-Italic 0 0 0 50 T
(P) t
pse
psb
pse
gR
1 G
gS 95 294 74 18 rC
95 294 74 18 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 168.25 311.25 .25 .25 168 294 @b
95 311.25 -.25 .25 168.25 311 .25 95 311 @a
-1 -1 96 312 1 1 95 294 @b
102 297 19 12 rC
113 306 :M
f2_12 sf
( )S
f0_12 sf
( )S
102 295 :M
psb
currentpoint pse
103 296 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
([) t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(]) t
pse
psb
pse
gR
1 G
gS 168 294 307 18 rC
168 294 307 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 475 312 1 1 474 294 @b
168 311.25 -.25 .25 474.25 311 .25 168 311 @a
-.25 -.25 168.25 311.25 .25 .25 168 294 @b
171 297 301 12 rC
175 306 :M
f0_12 sf
-.026(The set of concept instances of type )A
350 297 11 10 rC
361 308 :M
f2_12 sf
( )S
350 297 :M
psb
currentpoint pse
351 298 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 33 /Times-Italic 0 0 0 50 T
(P) t
pse
psb
pse
gR
gS 171 297 301 12 rC
361 306 :M
f0_12 sf
-.058( in a schema)A
gR
1 G
gS 95 311 74 18 rC
95 311 74 18 rF
gR
0 G
gS 0 0 552 730 rC
95 311.25 -.25 .25 168.25 311 .25 95 311 @a
-.25 -.25 168.25 328.25 .25 .25 168 311 @b
-1 -1 96 329 1 1 95 311 @b
98 314 68 12 rC
102 323 :M
f4_12 sf
(A)S
gR
1 G
gS 168 311 307 18 rC
168 311 307 18 rF
gR
0 G
gS 0 0 552 730 rC
168 311.25 -.25 .25 474.25 311 .25 168 311 @a
-1 -1 475 329 1 1 474 311 @b
-.25 -.25 168.25 328.25 .25 .25 168 311 @b
171 314 301 12 rC
175 323 :M
f0_12 sf
-.022(The set of attributes for all concepts in )A
363 314 11 10 rC
374 325 :M
f2_12 sf
( )S
363 314 :M
psb
currentpoint pse
364 315 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 33 /Times-Italic 0 0 0 50 T
(P) t
pse
psb
pse
gR
1 G
gS 95 328 74 18 rC
95 328 74 18 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 168.25 345.25 .25 .25 168 328 @b
-1 -1 96 346 1 1 95 328 @b
102 331 22 12 rC
113 340 :M
f0_12 sf
( )S
f2_12 sf
( )S
102 329 :M
psb
currentpoint pse
103 330 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(P) t
31 42 /Times-Roman 0 0 0 50 T
(.) t
45 42 /Times-Italic 0 0 0 50 T
(A) t
pse
psb
pse
gR
1 G
gS 168 328 307 18 rC
168 328 307 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 475 346 1 1 474 328 @b
-.25 -.25 168.25 345.25 .25 .25 168 328 @b
171 331 301 12 rC
175 340 :M
f0_12 sf
-.219(The )A
197 331 11 12 rC
208 340 :M
f2_12 sf
( )S
197 329 :M
psb
currentpoint pse
198 330 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 42 /Times-Italic 0 0 0 50 T
(A) t
pse
psb
pse
gR
gS 171 331 301 12 rC
208 340 :M
f0_12 sf
-.024( attribute of concept instances of type )A
391 331 11 10 rC
402 342 :M
f2_12 sf
( )S
391 331 :M
psb
currentpoint pse
392 332 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 33 /Times-Italic 0 0 0 50 T
(P) t
pse
psb
pse
gR
1 G
gS 95 345 74 18 rC
95 345 74 18 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 168.25 362.25 .25 .25 168 345 @b
95 362.25 -.25 .25 168.25 362 .25 95 362 @a
-1 -1 96 363 1 1 95 345 @b
102 348 45 12 rC
113 357 :M
f2_12 sf
( )S
f0_12 sf
( )S
102 346 :M
psb
currentpoint pse
103 347 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
([) t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(.) t
62 42 /Times-Italic 0 0 0 50 T
(A) t
93 42 /Times-Roman 0 0 0 50 T
(]\() t
130 42 /Times-Italic 0 0 0 50 T
(p) t
155 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 168 345 307 18 rC
168 345 307 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 475 363 1 1 474 345 @b
168 362.25 -.25 .25 474.25 362 .25 168 362 @a
-.25 -.25 168.25 362.25 .25 .25 168 345 @b
171 348 301 12 rC
175 357 :M
f0_12 sf
-.019(The value of the )A
256 348 22 12 rC
267 357 :M
( )S
f2_12 sf
( )S
256 346 :M
psb
currentpoint pse
257 347 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(P) t
31 42 /Times-Roman 0 0 0 50 T
(.) t
45 42 /Times-Italic 0 0 0 50 T
(A) t
pse
psb
pse
gR
gS 171 348 301 12 rC
278 357 :M
f0_12 sf
-.008( attribute of the concept instance )A
437 350 10 10 rC
448 361 :M
f2_12 sf
( )S
437 350 :M
psb
currentpoint pse
438 351 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
4 25 /Times-Italic 0 0 0 50 T
(p) t
pse
psb
pse
gR
1 G
gS 95 362 74 18 rC
95 362 74 18 rF
gR
0 G
gS 0 0 552 730 rC
95 362.25 -.25 .25 168.25 362 .25 95 362 @a
-.25 -.25 168.25 379.25 .25 .25 168 362 @b
-1 -1 96 380 1 1 95 362 @b
98 365 68 12 rC
102 374 :M
f4_12 sf
(V)S
gR
1 G
gS 168 362 307 18 rC
168 362 307 18 rF
gR
0 G
gS 0 0 552 730 rC
168 362.25 -.25 .25 474.25 362 .25 168 362 @a
-1 -1 475 380 1 1 474 362 @b
-.25 -.25 168.25 379.25 .25 .25 168 362 @b
171 365 301 12 rC
175 374 :M
f0_12 sf
-.016(The set of values for all attributes in)A
349 374 :M
f4_12 sf
-.078( A)A
gR
1 G
gS 95 379 74 18 rC
95 379 74 18 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 168.25 396.25 .25 .25 168 379 @b
95 396.25 -.25 .25 168.25 396 .25 95 396 @a
-1 -1 96 397 1 1 95 379 @b
102 382 43 12 rC
112 391 :M
f0_12 sf
( )S
f2_12 sf
( )S
102 380 :M
psb
currentpoint pse
103 381 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
60 83 /Times-Roman 0 0 0 100 T
(.) t
88 83 /Times-Italic 0 0 0 100 T
(A) t
172 83 /Times-Roman 0 0 0 100 T
(==) t
308 83 /Times-Italic 0 0 0 100 T
(v) t
pse
psb
pse
gR
1 G
gS 168 379 307 18 rC
168 379 307 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 475 397 1 1 474 379 @b
168 396.25 -.25 .25 474.25 396 .25 168 396 @a
-.25 -.25 168.25 396.25 .25 .25 168 379 @b
171 382 301 12 rC
175 391 :M
f0_12 sf
-.058(The element )A
238 384 9 8 rC
249 395 :M
f2_12 sf
( )S
238 384 :M
psb
currentpoint pse
239 385 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 25 /Times-Italic 0 0 0 50 T
(v) t
pse
psb
pse
gR
gS 171 382 301 12 rC
247 391 :M
f0_12 sf
-.034( as a value of the attribute )A
374 382 22 12 rC
385 391 :M
( )S
f2_12 sf
( )S
374 380 :M
psb
currentpoint pse
375 381 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(P) t
31 42 /Times-Roman 0 0 0 50 T
(.) t
45 42 /Times-Italic 0 0 0 50 T
(A) t
pse
psb
pse
gR
1 G
gS 95 396 74 18 rC
95 396 74 18 rF
gR
0 G
gS 0 0 552 730 rC
95 396.25 -.25 .25 168.25 396 .25 95 396 @a
-.25 -.25 168.25 413.25 .25 .25 168 396 @b
-1 -1 96 414 1 1 95 396 @b
102 399 25 12 rC
112 406 :M
f2_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
102 395 :M
psb
currentpoint pse
103 396 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
80 96 /Times-Roman 0 0 0 100 T
(\() t
113 96 /Times-Italic 0 0 0 100 T
(P) t
173 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
1 G
gS 168 396 307 18 rC
168 396 307 18 rF
gR
0 G
gS 0 0 552 730 rC
168 396.25 -.25 .25 474.25 396 .25 168 396 @a
-1 -1 475 414 1 1 474 396 @b
-.25 -.25 168.25 413.25 .25 .25 168 396 @b
171 399 301 12 rC
175 408 :M
f0_12 sf
-.009(The set of attribute identifiers of concept instances of type )A
457 399 11 10 rC
468 410 :M
f2_12 sf
( )S
457 399 :M
psb
currentpoint pse
458 400 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 33 /Times-Italic 0 0 0 50 T
(P) t
pse
psb
pse
gR
1 G
gS 95 413 74 18 rC
95 413 74 18 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 168.25 430.25 .25 .25 168 413 @b
-1 -1 96 431 1 1 95 413 @b
102 416 36 12 rC
112 423 :M
f2_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
102 412 :M
psb
currentpoint pse
103 413 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
82 96 /Times-Roman 0 0 0 100 T
(\() t
115 96 /Times-Italic 0 0 0 100 T
(P) t
175 96 /Times-Roman 0 0 0 100 T
(.) t
203 96 /Times-Italic 0 0 0 100 T
(A) t
263 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
1 G
gS 168 413 307 18 rC
168 413 307 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 475 431 1 1 474 413 @b
-.25 -.25 168.25 430.25 .25 .25 168 413 @b
171 416 301 12 rC
175 425 :M
f0_12 sf
-.007(The set of value identifiers of the )A
337 416 22 12 rC
348 425 :M
( )S
f2_12 sf
( )S
337 414 :M
psb
currentpoint pse
338 415 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(P) t
31 42 /Times-Roman 0 0 0 50 T
(.) t
45 42 /Times-Italic 0 0 0 50 T
(A) t
pse
psb
pse
gR
gS 171 416 301 12 rC
359 425 :M
f0_12 sf
-.109( attribute)A
gR
1 G
gS 95 430 74 25 rC
95 430 74 25 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 168.25 454.25 .25 .25 168 430 @b
95 454.25 -.25 .25 168.25 454 .25 95 454 @a
-1 -1 96 455 1 1 95 430 @b
102 433 40 19 rC
112 444 :M
f2_12 sf
-.474( )A
f0_7 sf
( )S
117 444 :M
f4_14 sf
( )S
102 433 :M
psb
currentpoint pse
103 434 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
89 51 /Times-Roman 0 0 0 58 T
(*) t
118 96 /Times-Roman 0 0 0 100 T
(\() t
151 96 /Times-Italic 0 0 0 100 T
(P) t
211 96 /Times-Roman 0 0 0 100 T
(.) t
239 96 /Times-Italic 0 0 0 100 T
(A) t
299 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
1 G
gS 168 430 307 25 rC
168 430 307 25 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 475 455 1 1 474 430 @b
168 454.25 -.25 .25 474.25 454 .25 168 454 @a
-.25 -.25 168.25 454.25 .25 .25 168 430 @b
171 433 301 16 rC
175 444 :M
f0_12 sf
-.012(The set of values of the )A
290 433 22 16 rC
301 444 :M
( )S
f2_12 sf
( )S
290 433 :M
psb
currentpoint pse
291 434 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(P) t
31 42 /Times-Roman 0 0 0 50 T
(.) t
45 42 /Times-Italic 0 0 0 50 T
(A) t
pse
psb
pse
gR
gS 171 433 301 16 rC
312 444 :M
f0_12 sf
-.109( attribute)A
gR
1 G
gS 95 454 74 18 rC
95 454 74 18 rF
gR
0 G
gS 0 0 552 730 rC
95 454.25 -.25 .25 168.25 454 .25 95 454 @a
-.25 -.25 168.25 471.25 .25 .25 168 454 @b
-1 -1 96 472 1 1 95 454 @b
98 457 68 12 rC
102 466 :M
f4_12 sf
(C)S
gR
1 G
gS 168 454 307 18 rC
168 454 307 18 rF
gR
0 G
gS 0 0 552 730 rC
168 454.25 -.25 .25 474.25 454 .25 168 454 @a
-1 -1 475 472 1 1 474 454 @b
-.25 -.25 168.25 471.25 .25 .25 168 454 @b
171 457 301 12 rC
175 466 :M
f0_12 sf
-.008(The set of constraints of a model )A
gR
1 G
gS 95 471 74 30 rC
95 471 74 30 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 168.25 500.25 .25 .25 168 471 @b
95 501 -1 1 169 500 1 95 500 @a
-1 -1 96 501 1 1 95 471 @b
102 474 17 12 rC
113 483 :M
f2_12 sf
( )S
f0_12 sf
( )S
102 472 :M
psb
currentpoint pse
103 473 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
([) t
17 42 /Times-Italic 0 0 0 50 T
(c) t
39 42 /Times-Roman 0 0 0 50 T
(]) t
pse
psb
pse
gR
1 G
gS 168 471 307 30 rC
168 471 307 30 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 475 501 1 1 474 471 @b
168 501 -1 1 475 500 1 168 500 @a
-.25 -.25 168.25 500.25 .25 .25 168 471 @b
171 474 301 24 rC
175 483 :M
f0_12 sf
2.336 .234(The instantiation of a constraint )J
351 474 29 15 rC
361 481 :M
f4_14 sf
( )S
f0_12 sf
( )S
f3_12 sf
( )S
f2_12 sf
( )S
351 470 :M
psb
currentpoint pse
352 471 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(c) t
71 98 /Symbol 0 0 0 100 T
(\316) t
161 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
pse
psb
pse
gR
gS 171 474 301 24 rC
380 483 :M
f0_12 sf
2.724 .272( for the)J
423 483 :M
2.757 .276( concept)J
175 495 :M
-.026(instances in )A
234 486 11 10 rC
245 497 :M
f2_12 sf
( )S
234 486 :M
psb
currentpoint pse
235 487 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 33 /Times-Italic 0 0 0 50 T
(P) t
pse
psb
pse
gR
gS 171 474 301 24 rC
245 495 :M
f0_12 sf
-.046( and attribute values )A
345 484 22 14 rC
356 495 :M
( )S
f2_12 sf
( )S
345 484 :M
psb
currentpoint pse
346 485 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(P) t
31 42 /Times-Roman 0 0 0 50 T
(.) t
45 42 /Times-Italic 0 0 0 50 T
(A) t
pse
psb
pse
gR
gS 171 474 301 24 rC
367 495 :M
f0_12 sf
-.058( in a schema)A
gR
gS 0 501 552 204 rC
230 522 :M
f0_10 sf
-.034(Table 4.1. Model Notation)A
60 552 :M
f1_12 sf
-.011(4.2.3 Creating Visual Models)A
78 582 :M
f0_10 sf
.383 .038(Creation of data models is a classical database problem that is beyond the scope of this chapter [BCN92].)J
60 597 :M
-.012(In this subsection, we concern ourselves with creating suitable visual models.)A
370 597 :M
.558 .056( There is an important difference)J
60 612 :M
-.035(between the two kinds)A
150 612 :M
.573 .057( of models. Data models capture abstract organization of information. Their concepts,)J
60 627 :M
.547 .055(attributes, and values are determined by the information the model captures. )J
378 627 :M
1.05 .105( Visual models, however, must)J
60 642 :M
1.155 .115(reflect not only the information to be organized, but also the medium in which the models are expressed.)J
60 657 :M
.026 .003(Specifically, visual model concepts reflect both the information to be shown and the medium, while the possible)J
60 672 :M
.32 .032(attributes and values of a concept are determined by the medium alone. For example, consider a visual model)J
60 687 :M
.436 .044(used to display directed)J
158 687 :M
1.133 .113( graphs. Any such model would likely have concepts corresponding to )J
f2_10 sf
.349(nodes)A
f0_10 sf
.975 .097( and)J
60 702 :M
f2_10 sf
-.191(edges)A
83 702 :M
f0_10 sf
.579 .058(. If the model were oriented toward a monochrome ASCII terminal, these concepts and their attributes)J
endp
%%Page: 5 5
%%BeginPageSetup
initializepage
(; page: 5 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(28)S
gR
gS 0 35 552 225 rC
60 47 :M
f0_10 sf
-.024(and values would be very different from a)A
228 47 :M
.592 .059( similar model intended for a color bit-mapped display system. The)J
60 62 :M
.027 .003(ability to use colors, shapes, lines, and patterns would vary widely between the two. In general, the number and)J
60 77 :M
-.036(semantics of visual)A
137 77 :M
.588 .059( model concepts are determined by the information that must be displayed, but the precise)J
60 92 :M
-.002(composition of the concepts is determined by the medium.)A
78 107 :M
.551 .055(Because data models are used to represent abstract information, their concepts may be chosen)J
466 107 :M
.727 .073( arbitrarily)J
60 122 :M
-.013(based on some conceptualization of the world. On the other)A
301 122 :M
.551 .055( hand, visual model concepts must be visualizable.)J
60 137 :M
.521 .052(Therefore, visual concepts must be constructed using only certain visual building)J
395 137 :M
1.262 .126( blocks. Motivated by our)J
60 152 :M
.298 .03(involvement in developing a scientific Experiment Management System, we are concerned with visual models)J
60 167 :M
.048 .005(to be displayed on color bit-mapped workstations as these are commonly available to scientists. To build visual)J
60 182 :M
.952 .095(models for this medium, we have chosen the basic visual constructs described in the following table. The)J
60 197 :M
1.379 .138(choice of these constructs is somewhat arbitrary. They are not formally defined in this chapter, but the)J
60 212 :M
-.022(interested reader may find a formal)A
201 212 :M
.573 .057( discussion of visual constructs elsewhere [FvDFH90]. In the table below,)J
60 227 :M
.04 .004(location is a complex attribute consisting of several coordinate values. For the region, text-display, and picture-)J
60 242 :M
-.004(display constructs, it is assumed to be the location of their center.)A
gR
1 G
gS 89 260 92 18 rC
89 260 92 18 rF
gR
0 G
gS 0 0 552 730 rC
89 261 -1 1 181 260 1 89 260 @a
-1 -1 181 278 1 1 180 260 @b
89 278 -1 1 181 277 1 89 277 @a
-1 -1 90 278 1 1 89 260 @b
92 263 86 12 rC
96 272 :M
f0_12 sf
-.073(Construct )A
gR
1 G
gS 180 260 300 18 rC
180 260 300 18 rF
gR
0 G
gS 0 0 552 730 rC
180 261 -1 1 480 260 1 180 260 @a
-1 -1 480 278 1 1 479 260 @b
180 278 -1 1 480 277 1 180 277 @a
-1 -1 181 278 1 1 180 260 @b
183 263 294 12 rC
187 272 :M
f0_12 sf
-.109(Attributes)A
gR
1 G
gS 89 277 92 42 rC
89 277 92 42 rF
gR
0 G
gS 0 0 552 730 rC
89 278 -1 1 181 277 1 89 277 @a
-.25 -.25 180.25 318.25 .25 .25 180 277 @b
89 318.25 -.25 .25 180.25 318 .25 89 318 @a
-1 -1 90 319 1 1 89 277 @b
92 280 86 12 rC
96 289 :M
f2_12 sf
-.065(region)A
gR
1 G
gS 180 277 300 42 rC
180 277 300 42 rF
gR
0 G
gS 0 0 552 730 rC
180 278 -1 1 480 277 1 180 277 @a
-1 -1 480 319 1 1 479 277 @b
180 318.25 -.25 .25 479.25 318 .25 180 318 @a
-.25 -.25 180.25 318.25 .25 .25 180 277 @b
183 280 294 36 rC
187 289 :M
f0_12 sf
-.003(shape, orientation, center-location, lower-left-location, )A
187 301 :M
-.017(background-color, background-pattern, boundary-width, )A
187 313 :M
-.018(boundary-color, boundary-pattern )A
gR
1 G
gS 89 318 92 18 rC
89 318 92 18 rF
gR
0 G
gS 0 0 552 730 rC
89 318.25 -.25 .25 180.25 318 .25 89 318 @a
-.25 -.25 180.25 335.25 .25 .25 180 318 @b
89 335.25 -.25 .25 180.25 335 .25 89 335 @a
-1 -1 90 336 1 1 89 318 @b
92 321 86 12 rC
96 330 :M
f2_12 sf
-.331(line)A
gR
1 G
gS 180 318 300 18 rC
180 318 300 18 rF
gR
0 G
gS 0 0 552 730 rC
180 318.25 -.25 .25 479.25 318 .25 180 318 @a
-1 -1 480 336 1 1 479 318 @b
180 335.25 -.25 .25 479.25 335 .25 180 335 @a
-.25 -.25 180.25 335.25 .25 .25 180 318 @b
183 321 294 12 rC
187 330 :M
f0_12 sf
-.004(source-location, dest-location, width, color, pattern)A
gR
1 G
gS 89 335 92 18 rC
89 335 92 18 rF
gR
0 G
gS 0 0 552 730 rC
89 335.25 -.25 .25 180.25 335 .25 89 335 @a
-.25 -.25 180.25 352.25 .25 .25 180 335 @b
89 352.25 -.25 .25 180.25 352 .25 89 352 @a
-1 -1 90 353 1 1 89 335 @b
92 338 86 12 rC
96 347 :M
f2_12 sf
-.089(text-display)A
152 347 :M
f0_12 sf
( )S
gR
1 G
gS 180 335 300 18 rC
180 335 300 18 rF
gR
0 G
gS 0 0 552 730 rC
180 335.25 -.25 .25 479.25 335 .25 180 335 @a
-1 -1 480 353 1 1 479 335 @b
180 352.25 -.25 .25 479.25 352 .25 180 352 @a
-.25 -.25 180.25 352.25 .25 .25 180 335 @b
183 338 294 12 rC
187 347 :M
f0_12 sf
-.012(text, font, location, orientation, size, and color)A
gR
1 G
gS 89 352 92 18 rC
89 352 92 18 rF
gR
0 G
gS 0 0 552 730 rC
89 352.25 -.25 .25 180.25 352 .25 89 352 @a
-.25 -.25 180.25 369.25 .25 .25 180 352 @b
89 370 -1 1 181 369 1 89 369 @a
-1 -1 90 370 1 1 89 352 @b
92 355 86 12 rC
96 364 :M
f2_12 sf
-.046(picture-display)A
gR
1 G
gS 180 352 300 18 rC
180 352 300 18 rF
gR
0 G
gS 0 0 552 730 rC
180 352.25 -.25 .25 479.25 352 .25 180 352 @a
-1 -1 480 370 1 1 479 352 @b
180 370 -1 1 480 369 1 180 369 @a
-.25 -.25 180.25 369.25 .25 .25 180 352 @b
183 355 294 12 rC
187 364 :M
f0_12 sf
-.013(picture, location, orientation, size, and color)A
gR
gS 0 370 552 324 rC
226 391 :M
f0_10 sf
-.023(Table 4.2. Visual Constructs)A
78 421 :M
.357 .036(Visual concepts are defined as )J
f2_10 sf
.112(compositions)A
260 421 :M
f0_10 sf
.554 .055( of the above constructs or)J
371 421 :M
1.01 .101( other, previously defined, visual)J
60 436 :M
.603 .06(concepts. The attributes of a visual concept are the attributes of all of)J
352 436 :M
1.141 .114( its components, possibly renamed to)J
60 451 :M
.559 .056(avoid any naming conflicts. Since compositions often have a large number of attributes, in our examples we)J
60 466 :M
-.013(have omitted many visual attributes to make the examples more manageable.)A
78 481 :M
1.024 .102(To make the appearance of a composition coherent, it will usually be necessary to include constraints)J
60 496 :M
.224 .022(relating the attributes of its different components. For example, if a box with a piece of text in the center were)J
60 511 :M
-.075(required, a)A
103 511 :M
.412 .041( composition of a )J
f2_10 sf
.144(region)A
f0_10 sf
.236 .024( and a )J
f2_10 sf
.14(text-display)A
281 511 :M
f0_10 sf
.648 .065( would be defined as a concept, and a constraint would)J
60 526 :M
-.013(require the value of the location attribute of )A
237 526 :M
f2_10 sf
-.059(text-display)A
284 526 :M
f0_10 sf
-.104( to be the)A
321 526 :M
.614 .061( same as the value of the location attribute of)J
60 541 :M
f2_10 sf
.169(region)A
f0_10 sf
.579 .058(. These constraints regulate the appearance of visual concepts, and are called )J
412 541 :M
f2_10 sf
.368 .037(composition constraints)J
60 556 :M
f0_10 sf
-.002(to distinguish them from other, more semantically focused constraints.)A
60 586 :M
f1_12 sf
-.009(4.2.4 Example Data and Visual Models)A
78 616 :M
f0_10 sf
.401 .04(Consider a very simple semantic data model, supporting )J
f2_10 sf
.099(entity-classes)A
367 616 :M
f0_10 sf
.626 .063( that may be mutually related with)J
60 631 :M
.542 .054(binary )J
f2_10 sf
.132(relationships)A
f0_10 sf
.385 .039(. Each entity-class has a )J
248 631 :M
f2_10 sf
-.219(name)A
270 631 :M
f0_10 sf
.34 .034( and a )J
f2_10 sf
.205(kind)A
f0_10 sf
.65 .065(. The two possible kinds are \324simple\325 \(such as)J
60 646 :M
-.042(the class of integers or)A
150 646 :M
.535 .054( the class of character strings\) or \324compound\325 \(user-defined classes\). Each relationship)J
60 661 :M
.493 .049(has a )J
85 661 :M
f2_10 sf
-.219(name)A
107 661 :M
f0_10 sf
.461 .046(, a )J
121 661 :M
f2_10 sf
.151(card-ratio)A
f0_10 sf
.52 .052( of \3241:1\325, \3241:N\325, \324M:1\325, or \324M:N\325, and two entity-classes with which it is)J
462 661 :M
.91 .091( associated.)J
60 676 :M
-.02(This data model is the sextuple )A
187 676 :M
f4_14 sf
(D)S
197 676 :M
f0_10 sf
.653 .065( = < )J
219 663 14 19 rC
229 674 :M
f4_14 sf
( )S
219 663 :M
psb
currentpoint pse
220 664 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 370 552 324 rC
233 676 :M
f4_10 sf
(,)S
235 663 17 19 rC
245 674 :M
f4_14 sf
( )S
235 663 :M
psb
currentpoint pse
236 664 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
6 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 370 552 324 rC
252 676 :M
f4_10 sf
(,)S
254 663 16 19 rC
264 674 :M
f4_14 sf
( )S
254 663 :M
psb
currentpoint pse
255 664 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
74 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 370 552 324 rC
270 676 :M
f4_10 sf
(,)S
272 663 17 19 rC
282 674 :M
f4_14 sf
( )S
272 663 :M
psb
currentpoint pse
273 664 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 370 552 324 rC
289 676 :M
f4_10 sf
(,)S
291 663 17 19 rC
301 674 :M
f4_14 sf
( )S
291 663 :M
psb
currentpoint pse
292 664 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
86 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 370 552 324 rC
308 676 :M
f4_10 sf
(,)S
310 663 15 19 rC
320 674 :M
f4_14 sf
( )S
310 663 :M
psb
currentpoint pse
311 664 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 370 552 324 rC
325 676 :M
f0_10 sf
.753 .075( >, where )J
368 663 36 19 rC
378 674 :M
f3_12 sf
( )S
f4_14 sf
( )S
368 663 :M
psb
currentpoint pse
369 664 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
139 96 /ZapfChancery-MediumItalic 0 0 0 100 T
(=) t
211 96 /Symbol 0 0 0 100 T
(\306) t
pse
psb
pse
gR
gS 0 370 552 324 rC
404 676 :M
f0_10 sf
.645 .065(, and the concepts in )J
493 663 14 19 rC
503 674 :M
f4_14 sf
( )S
493 663 :M
psb
currentpoint pse
494 664 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 370 552 324 rC
507 676 :M
f0_10 sf
(,)S
60 691 :M
-.026(their attributes in)A
f4_10 sf
( )S
130 678 17 16 rC
140 689 :M
f4_14 sf
( )S
130 678 :M
psb
currentpoint pse
131 679 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
6 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 370 552 324 rC
147 691 :M
f0_10 sf
-.017(, and their corresponding value sets as determined by )A
362 678 17 16 rC
372 689 :M
f0_7 sf
( )S
374 689 :M
f4_14 sf
( )S
362 678 :M
psb
currentpoint pse
363 679 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
86 121 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
89 49 /Times-Roman 0 0 0 58 T
(*) t
pse
psb
pse
gR
gS 0 370 552 324 rC
379 691 :M
f0_10 sf
-.025( are given in table 4.3.)A
f0_9 sf
0 -4 rm
(4)S
0 4 rm
gR
gS 0 0 552 730 rC
60 696.5 -.5 .5 172.5 696 .5 60 696 @a
0 700 552 15 rC
78 708 :M
f0_9 sf
-.066(4)A
f0_10 sf
0 4 rm
-.062(For simplicity, we use)A
0 -4 rm
171 712 :M
.548 .055( the names of attributes directly instead of their corresponding full identifiers, i.e.,)J
endp
%%Page: 6 6
%%BeginPageSetup
initializepage
(; page: 6 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(29)S
gR
1 G
gS 96 52 117 26 rC
96 52 117 26 rF
gR
0 G
gS 0 0 552 730 rC
96 53 -1 1 213 52 1 96 52 @a
96 78 -1 1 213 77 1 96 77 @a
-1 -1 97 78 1 1 96 52 @b
99 55 111 20 rC
103 68 :M
f0_12 sf
-.141(Concept )A
146 57 19 16 rC
157 68 :M
f2_12 sf
( )S
f0_12 sf
( )S
146 57 :M
psb
currentpoint pse
147 58 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
(\() t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 212 52 114 26 rC
212 52 114 26 rF
gR
0 G
gS 0 0 552 730 rC
212 53 -1 1 326 52 1 212 52 @a
212 78 -1 1 326 77 1 212 77 @a
215 55 108 20 rC
219 68 :M
f0_12 sf
-.032( Attribute )A
268 57 30 16 rC
279 68 :M
f2_12 sf
( )S
f0_12 sf
( )S
268 57 :M
psb
currentpoint pse
269 58 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
(\() t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(.) t
62 42 /Times-Italic 0 0 0 50 T
(A) t
93 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 325 52 148 26 rC
325 52 148 26 rF
gR
0 G
gS 0 0 552 730 rC
325 53 -1 1 473 52 1 325 52 @a
-1 -1 473 78 1 1 472 52 @b
325 78 -1 1 473 77 1 325 77 @a
328 55 142 20 rC
332 68 :M
f0_12 sf
-.04(Attribute Values )A
415 55 48 19 rC
425 66 :M
f2_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
415 55 :M
psb
currentpoint pse
416 56 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Roman 0 0 0 100 T
(\() t
33 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
122 51 /Times-Roman 0 0 0 58 T
(*) t
151 96 /Times-Roman 0 0 0 100 T
(\() t
184 96 /Times-Italic 0 0 0 100 T
(P) t
244 96 /Times-Roman 0 0 0 100 T
(.) t
272 96 /Times-Italic 0 0 0 100 T
(A) t
332 96 /Times-Roman 0 0 0 100 T
(\)\)) t
pse
psb
pse
gR
1 G
gS 96 77 117 18 rC
96 77 117 18 rF
gR
0 G
gS 0 0 552 730 rC
96 78 -1 1 213 77 1 96 77 @a
-1 -1 97 95 1 1 96 77 @b
99 80 111 12 rC
103 89 :M
f0_12 sf
-.058(entity-class)A
gR
1 G
gS 212 77 114 18 rC
212 77 114 18 rF
gR
0 G
gS 0 0 552 730 rC
212 78 -1 1 326 77 1 212 77 @a
215 80 108 12 rC
219 89 :M
f0_12 sf
-.329(name)A
gR
1 G
gS 325 77 148 18 rC
325 77 148 18 rF
gR
0 G
gS 0 0 552 730 rC
325 78 -1 1 473 77 1 325 77 @a
-1 -1 473 95 1 1 472 77 @b
328 80 142 12 rC
332 89 :M
f0_12 sf
-.248(text )A
gR
1 G
gS 96 94 117 18 rC
96 94 117 18 rF
gR
0 G
gS 0 0 552 730 rC
96 111.25 -.25 .25 212.25 111 .25 96 111 @a
-1 -1 97 112 1 1 96 94 @b
1 G
212 94 114 18 rC
212 94 114 18 rF
gR
gS 0 0 552 730 rC
212 111.25 -.25 .25 325.25 111 .25 212 111 @a
215 97 108 12 rC
219 106 :M
f0_12 sf
-.111(kind)A
gR
1 G
gS 325 94 148 18 rC
325 94 148 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 473 112 1 1 472 94 @b
325 111.25 -.25 .25 472.25 111 .25 325 111 @a
328 97 142 12 rC
332 106 :M
f0_12 sf
-.01({simple, compound})A
gR
1 G
gS 96 111 117 18 rC
96 111 117 18 rF
gR
0 G
gS 0 0 552 730 rC
96 111.25 -.25 .25 212.25 111 .25 96 111 @a
-1 -1 97 129 1 1 96 111 @b
99 114 111 12 rC
103 123 :M
f0_12 sf
-.059(relationship)A
gR
1 G
gS 212 111 114 18 rC
212 111 114 18 rF
gR
0 G
gS 0 0 552 730 rC
212 111.25 -.25 .25 325.25 111 .25 212 111 @a
215 114 108 12 rC
219 123 :M
f0_12 sf
-.329(name)A
gR
1 G
gS 325 111 148 18 rC
325 111 148 18 rF
gR
0 G
gS 0 0 552 730 rC
325 111.25 -.25 .25 472.25 111 .25 325 111 @a
-1 -1 473 129 1 1 472 111 @b
328 114 142 12 rC
332 123 :M
f0_12 sf
-.331(text)A
gR
1 G
gS 96 128 117 18 rC
96 128 117 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 97 146 1 1 96 128 @b
1 G
212 128 114 18 rC
212 128 114 18 rF
215 131 108 12 rC
219 140 :M
0 G
f0_12 sf
-.07(card-ratio)A
gR
1 G
gS 325 128 148 18 rC
325 128 148 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 473 146 1 1 472 128 @b
328 131 142 12 rC
332 140 :M
f0_12 sf
-.027({1:1, 1:N, M:1, M:N})A
gR
1 G
gS 96 145 117 18 rC
96 145 117 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 97 163 1 1 96 145 @b
1 G
212 145 114 18 rC
212 145 114 18 rF
215 148 108 12 rC
219 157 :M
0 G
f0_12 sf
-.07(from-class)A
gR
1 G
gS 325 145 148 18 rC
325 145 148 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 473 163 1 1 472 145 @b
328 148 142 12 rC
332 157 :M
f4_14 sf
-.074(I)A
f0_12 sf
-.067(\(entity-class\))A
gR
1 G
gS 96 162 117 18 rC
96 162 117 18 rF
gR
0 G
gS 0 0 552 730 rC
96 180 -1 1 213 179 1 96 179 @a
-1 -1 97 180 1 1 96 162 @b
1 G
212 162 114 18 rC
212 162 114 18 rF
gR
gS 0 0 552 730 rC
212 180 -1 1 326 179 1 212 179 @a
215 165 108 12 rC
219 174 :M
f0_12 sf
-.092(to-class)A
gR
1 G
gS 325 162 148 18 rC
325 162 148 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 473 180 1 1 472 162 @b
325 180 -1 1 473 179 1 325 179 @a
328 165 142 12 rC
332 174 :M
f4_14 sf
-.074(I)A
f0_12 sf
-.067(\(entity-class\))A
gR
gS 0 180 552 186 rC
213 201 :M
f0_10 sf
(Table 4.3. An Example Data Model)S
60 228 :M
.622 .062(Note that the set of values of an attribute has)J
248 228 :M
1.15 .115( several possibilities: an infinite predefined set \(e.g., text\), an)J
60 243 :M
-.007(enumerated set \(e.g., {1:1, \311, M:N}\), or the set of all instances of a concept \(e.g.,)A
f4_14 sf
( I)S
f0_10 sf
-.007(\(entity-class\)\).)A
78 258 :M
.132 .013(Similarly, consider a very simple visual model that supports directed graphs. We define the concepts to be)J
60 273 :M
f2_10 sf
.033(nodes)A
f0_10 sf
.055 .006( and )J
f2_10 sf
.041(edges)A
127 273 :M
f0_10 sf
.632 .063(, the former a combination of a )J
261 273 :M
f2_10 sf
.082(region)A
f0_10 sf
.134 .013( and a )J
f2_10 sf
.08(text-display)A
363 273 :M
f0_10 sf
1.116 .112(, and the latter a combination of a)J
60 288 :M
f2_10 sf
-.332(line)A
75 288 :M
f0_10 sf
1.331 .133(, a )J
91 288 :M
f2_10 sf
-.059(text-display)A
138 288 :M
f0_10 sf
.936 .094(, and two )J
f2_10 sf
.443(nodes)A
f0_10 sf
1.147 .115(. This visual model is the sextuple )J
f4_14 sf
(G)S
372 288 :M
f0_10 sf
1.535 .154( = < )J
397 275 13 19 rC
407 286 :M
f4_14 sf
( )S
397 275 :M
psb
currentpoint pse
398 276 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 180 552 186 rC
410 288 :M
f0_10 sf
(,)S
413 275 15 19 rC
423 286 :M
f4_14 sf
( )S
413 275 :M
psb
currentpoint pse
414 276 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
74 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 180 552 186 rC
428 288 :M
f0_10 sf
(,)S
431 275 16 19 rC
441 286 :M
f4_14 sf
( )S
431 275 :M
psb
currentpoint pse
432 276 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
6 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 180 552 186 rC
447 288 :M
f0_10 sf
(,)S
450 275 16 19 rC
460 286 :M
f4_14 sf
( )S
450 275 :M
psb
currentpoint pse
451 276 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 180 552 186 rC
466 288 :M
f0_10 sf
(,)S
469 275 16 19 rC
479 286 :M
f4_14 sf
( )S
469 275 :M
psb
currentpoint pse
470 276 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
86 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 180 552 186 rC
485 288 :M
f0_10 sf
(,)S
488 275 14 19 rC
498 286 :M
f4_14 sf
( )S
488 275 :M
psb
currentpoint pse
489 276 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 180 552 186 rC
502 288 :M
f0_10 sf
-.14(>,)A
60 303 :M
-.019(where the concepts in )A
149 290 13 19 rC
159 301 :M
f4_14 sf
( )S
149 290 :M
psb
currentpoint pse
150 291 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 180 552 186 rC
162 303 :M
f0_10 sf
-.038(, their attributes in )A
238 290 16 19 rC
248 301 :M
f4_14 sf
( )S
238 290 :M
psb
currentpoint pse
239 291 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
6 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 180 552 186 rC
254 303 :M
f0_10 sf
(,)S
257 303 :M
.604 .06( and their corresponding value sets as determined by )J
478 290 16 19 rC
488 301 :M
f0_7 sf
( )S
490 301 :M
f4_14 sf
( )S
478 290 :M
psb
currentpoint pse
479 291 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
86 120 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
89 50 /Times-Roman 0 0 0 58 T
(*) t
pse
psb
pse
gR
gS 0 180 552 186 rC
494 303 :M
f0_10 sf
.227 .023( are)J
60 318 :M
.69 .069(given in table 4.4. For simplicity, only a subset of the attributes is shown. Note that some of the attributes)J
60 333 :M
-.026(whose allowed values are a set of)A
194 333 :M
.462 .046( size one. For example, the )J
f2_10 sf
.164(label-color)A
f0_10 sf
.555 .055( attribute is only allowed to have the)J
60 348 :M
-.005(value \322black.\323 In these cases, the model is specifying that the attribute has a constant value.)A
gR
1 G
gS 79 366 107 26 rC
79 366 107 26 rF
gR
0 G
gS 0 0 552 730 rC
79 367 -1 1 186 366 1 79 366 @a
79 392 -1 1 186 391 1 79 391 @a
-1 -1 80 392 1 1 79 366 @b
82 369 101 20 rC
86 382 :M
f0_12 sf
-.141(Concept )A
129 371 19 16 rC
140 382 :M
f2_12 sf
( )S
f0_12 sf
( )S
129 371 :M
psb
currentpoint pse
130 372 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
(\() t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 185 366 111 26 rC
185 366 111 26 rF
gR
0 G
gS 0 0 552 730 rC
185 367 -1 1 296 366 1 185 366 @a
185 392 -1 1 296 391 1 185 391 @a
188 369 105 20 rC
192 382 :M
f0_12 sf
-.032( Attribute )A
241 371 30 16 rC
252 382 :M
f2_12 sf
( )S
f0_12 sf
( )S
241 371 :M
psb
currentpoint pse
242 372 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
(\() t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(.) t
62 42 /Times-Italic 0 0 0 50 T
(A) t
93 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 295 366 195 26 rC
295 366 195 26 rF
gR
0 G
gS 0 0 552 730 rC
295 367 -1 1 490 366 1 295 366 @a
-1 -1 490 392 1 1 489 366 @b
295 392 -1 1 490 391 1 295 391 @a
298 369 189 20 rC
302 382 :M
f0_12 sf
-.04(Attribute Values )A
385 369 48 19 rC
395 380 :M
f2_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
385 369 :M
psb
currentpoint pse
386 370 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Roman 0 0 0 100 T
(\() t
33 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
122 51 /Times-Roman 0 0 0 58 T
(*) t
151 96 /Times-Roman 0 0 0 100 T
(\() t
184 96 /Times-Italic 0 0 0 100 T
(P) t
244 96 /Times-Roman 0 0 0 100 T
(.) t
272 96 /Times-Italic 0 0 0 100 T
(A) t
332 96 /Times-Roman 0 0 0 100 T
(\)\)) t
pse
psb
pse
gR
1 G
gS 79 391 107 18 rC
79 391 107 18 rF
gR
0 G
gS 0 0 552 730 rC
79 392 -1 1 186 391 1 79 391 @a
-1 -1 80 409 1 1 79 391 @b
82 394 101 12 rC
86 403 :M
f0_12 sf
-.109(node)A
gR
1 G
gS 185 391 111 18 rC
185 391 111 18 rF
gR
0 G
gS 0 0 552 730 rC
185 392 -1 1 296 391 1 185 391 @a
188 394 105 12 rC
192 403 :M
f0_12 sf
-.08(shape)A
gR
1 G
gS 295 391 195 18 rC
295 391 195 18 rF
gR
0 G
gS 0 0 552 730 rC
295 392 -1 1 490 391 1 295 391 @a
-1 -1 490 409 1 1 489 391 @b
298 394 189 12 rC
302 403 :M
f0_12 sf
-.038({square, oval})A
gR
1 G
gS 79 408 107 18 rC
79 408 107 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 80 426 1 1 79 408 @b
1 G
185 408 111 18 rC
185 408 111 18 rF
188 411 105 12 rC
192 420 :M
0 G
f0_12 sf
-.093(location)A
gR
1 G
gS 295 408 195 18 rC
295 408 195 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 490 426 1 1 489 408 @b
298 411 189 12 rC
302 420 :M
f0_12 sf
-.029(plane-points)A
gR
1 G
gS 79 425 107 18 rC
79 425 107 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 80 443 1 1 79 425 @b
1 G
185 425 111 18 rC
185 425 111 18 rF
188 428 105 12 rC
192 437 :M
0 G
f0_12 sf
-.049(boundary-width)A
gR
1 G
gS 295 425 195 18 rC
295 425 195 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 490 443 1 1 489 425 @b
298 428 189 12 rC
302 437 :M
f0_12 sf
-.02({2 pixels})A
gR
1 G
gS 79 442 107 18 rC
79 442 107 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 80 460 1 1 79 442 @b
1 G
185 442 111 18 rC
185 442 111 18 rF
188 445 105 12 rC
192 454 :M
0 G
f0_12 sf
-.163(color)A
gR
1 G
gS 295 442 195 18 rC
295 442 195 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 490 460 1 1 489 442 @b
298 445 189 12 rC
302 454 :M
f0_12 sf
-.05({blue, red})A
gR
1 G
gS 79 459 107 18 rC
79 459 107 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 80 477 1 1 79 459 @b
1 G
185 459 111 18 rC
185 459 111 18 rF
188 462 105 12 rC
192 471 :M
0 G
f0_12 sf
-.034(label-text)A
gR
1 G
gS 295 459 195 18 rC
295 459 195 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 490 477 1 1 489 459 @b
298 462 189 12 rC
302 471 :M
f0_12 sf
-.331(text)A
gR
1 G
gS 79 476 107 18 rC
79 476 107 18 rF
gR
0 G
gS 0 0 552 730 rC
79 493.25 -.25 .25 185.25 493 .25 79 493 @a
-1 -1 80 494 1 1 79 476 @b
1 G
185 476 111 18 rC
185 476 111 18 rF
gR
gS 0 0 552 730 rC
185 493.25 -.25 .25 295.25 493 .25 185 493 @a
188 479 105 12 rC
192 488 :M
f0_12 sf
-.097(label-color)A
gR
1 G
gS 295 476 195 18 rC
295 476 195 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 490 494 1 1 489 476 @b
295 493.25 -.25 .25 489.25 493 .25 295 493 @a
298 479 189 12 rC
302 488 :M
f0_12 sf
-.084({black})A
gR
1 G
gS 79 493 107 18 rC
79 493 107 18 rF
gR
0 G
gS 0 0 552 730 rC
79 493.25 -.25 .25 185.25 493 .25 79 493 @a
-1 -1 80 511 1 1 79 493 @b
82 496 101 12 rC
86 505 :M
f0_12 sf
-.217(edge)A
gR
1 G
gS 185 493 111 18 rC
185 493 111 18 rF
gR
0 G
gS 0 0 552 730 rC
185 493.25 -.25 .25 295.25 493 .25 185 493 @a
188 496 105 12 rC
192 505 :M
f0_12 sf
-.069(source-location)A
gR
1 G
gS 295 493 195 18 rC
295 493 195 18 rF
gR
0 G
gS 0 0 552 730 rC
295 493.25 -.25 .25 489.25 493 .25 295 493 @a
-1 -1 490 511 1 1 489 493 @b
298 496 189 12 rC
302 505 :M
f0_12 sf
-.029(plane-points)A
gR
1 G
gS 79 510 107 18 rC
79 510 107 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 80 528 1 1 79 510 @b
1 G
185 510 111 18 rC
185 510 111 18 rF
188 513 105 12 rC
192 522 :M
0 G
f0_12 sf
-.081(dest-location)A
gR
1 G
gS 295 510 195 18 rC
295 510 195 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 490 528 1 1 489 510 @b
298 513 189 12 rC
302 522 :M
f0_12 sf
-.029(plane-points)A
gR
1 G
gS 79 527 107 18 rC
79 527 107 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 80 545 1 1 79 527 @b
1 G
185 527 111 18 rC
185 527 111 18 rF
188 530 105 12 rC
192 539 :M
0 G
f0_12 sf
-.163(color)A
gR
1 G
gS 295 527 195 18 rC
295 527 195 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 490 545 1 1 489 527 @b
298 530 189 12 rC
302 539 :M
f0_12 sf
-.003({black, blue, yellow, green, orange})A
gR
1 G
gS 79 544 107 18 rC
79 544 107 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 80 562 1 1 79 544 @b
1 G
185 544 111 18 rC
185 544 111 18 rF
188 547 105 12 rC
192 556 :M
0 G
f0_12 sf
-.08(from-node)A
gR
1 G
gS 295 544 195 18 rC
295 544 195 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 490 562 1 1 489 544 @b
298 547 189 12 rC
302 556 :M
f4_14 sf
-.092(I)A
f0_12 sf
-.108(\(node\))A
gR
1 G
gS 79 561 107 18 rC
79 561 107 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 80 579 1 1 79 561 @b
1 G
185 561 111 18 rC
185 561 111 18 rF
188 564 105 12 rC
192 573 :M
0 G
f0_12 sf
-.109(to-node)A
gR
1 G
gS 295 561 195 18 rC
295 561 195 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 490 579 1 1 489 561 @b
298 564 189 12 rC
302 573 :M
f4_14 sf
-.092(I)A
f0_12 sf
-.108(\(node\))A
gR
1 G
gS 79 578 107 18 rC
79 578 107 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 80 596 1 1 79 578 @b
1 G
185 578 111 18 rC
185 578 111 18 rF
188 581 105 12 rC
192 590 :M
0 G
f0_12 sf
-.034(label-text)A
gR
1 G
gS 295 578 195 18 rC
295 578 195 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 490 596 1 1 489 578 @b
298 581 189 12 rC
302 590 :M
f0_12 sf
-.331(text)A
gR
1 G
gS 79 595 107 18 rC
79 595 107 18 rF
gR
0 G
gS 0 0 552 730 rC
79 613 -1 1 186 612 1 79 612 @a
-1 -1 80 613 1 1 79 595 @b
1 G
185 595 111 18 rC
185 595 111 18 rF
gR
gS 0 0 552 730 rC
185 613 -1 1 296 612 1 185 612 @a
188 598 105 12 rC
192 607 :M
f0_12 sf
-.097(label-color)A
gR
1 G
gS 295 595 195 18 rC
295 595 195 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 490 613 1 1 489 595 @b
295 613 -1 1 490 612 1 295 612 @a
298 598 189 12 rC
302 607 :M
f0_12 sf
-.084({black})A
gR
gS 0 613 552 66 rC
210 634 :M
f0_10 sf
-.007(Table 4.4. An Example Visual Model)A
78 661 :M
.605 .06(There are four constraints in set )J
213 648 14 19 rC
223 659 :M
f4_14 sf
( )S
213 648 :M
psb
currentpoint pse
214 649 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 613 552 66 rC
227 661 :M
f0_10 sf
.616 .062( that all schemas of )J
312 661 :M
f4_14 sf
(G)S
321 661 :M
f0_10 sf
.557 .056( must satisfy. )J
380 661 :M
1.195 .12( Two of them are composition)J
60 676 :M
.683 .068(constraints, related to the relative positioning of the region and text-display for )J
f2_10 sf
.205(nodes)A
f0_10 sf
.537 .054(, and the line and text-)J
gR
gS 0 0 552 730 rC
60 681.5 -.5 .5 172.5 681 .5 60 681 @a
60 687 7 9 rC
70 698 :M
f2_10 sf
( )S
60 687 :M
psb
currentpoint pse
61 688 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
2 58 /Times-Italic 0 0 0 83 T
(A) t
pse
psb
pse
gR
gS 0 685 552 26 rC
67 695 :M
f0_10 sf
-.014( instead of )A
111 685 15 14 rC
121 696 :M
( )S
124 696 :M
f2_10 sf
( )S
111 685 :M
psb
currentpoint pse
112 686 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 75 /Times-Italic 0 0 0 83 T
(P) t
51 75 /Times-Roman 0 0 0 83 T
(.) t
74 75 /Times-Italic 0 0 0 83 T
(A) t
pse
psb
pse
gR
gS 0 685 552 26 rC
126 695 :M
f0_10 sf
-.08(. This also)A
170 695 :M
.583 .058( holds for all other models presented in this chapter and applies to any constraints)J
60 708 :M
-.016(that are shown as well.)A
endp
%%Page: 7 7
%%BeginPageSetup
initializepage
(; page: 7 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(30)S
gR
gS 0 41 552 480 rC
60 53 :M
f0_10 sf
1.116 .112(display for )J
110 53 :M
f2_10 sf
-.191(edges)A
133 53 :M
f0_10 sf
1.523 .152(. The remaining two are somewhat more interesting, determining the location of )J
491 53 :M
f2_10 sf
-.292(edge)A
60 68 :M
f0_10 sf
.378 .038(concept instances in terms of the )J
f2_10 sf
.124(nodes)A
f0_10 sf
.445 .045( they connect. Using simple Horn-clauses, we show these constraints,)J
60 83 :M
.475 .047(which indicate that the location of the source \(resp. destination\) of an edge is the same as the location of the)J
60 98 :M
-.007(from-node \(resp. to-node\) of the edge:)A
78 117 54 16 rC
89 128 :M
f0_12 sf
( )S
f2_12 sf
( )S
f3_12 sf
( )S
78 117 :M
psb
currentpoint pse
79 118 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Symbol 0 0 0 50 T
(") t
36 42 /Times-Italic 0 0 0 50 T
(e) t
70 42 /Symbol 0 0 0 50 T
(\316) t
118 42 /Times-Roman 0 0 0 50 T
(edge) t
pse
psb
pse
gR
gS 0 41 552 480 rC
132 128 :M
f0_10 sf
(,)S
150 128 :M
-.064(source-location\()A
214 121 9 8 rC
225 132 :M
f2_12 sf
( )S
214 121 :M
psb
currentpoint pse
215 122 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 25 /Times-Italic 0 0 0 50 T
(e) t
pse
psb
pse
gR
gS 0 41 552 480 rC
223 128 :M
f0_10 sf
-.023(\) = location\(from-node\()A
321 121 9 8 rC
332 132 :M
f2_12 sf
( )S
321 121 :M
psb
currentpoint pse
322 122 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 25 /Times-Italic 0 0 0 50 T
(e) t
pse
psb
pse
gR
gS 0 41 552 480 rC
330 128 :M
f0_10 sf
-.085(\)\), and )A
78 132 54 16 rC
89 143 :M
f0_12 sf
( )S
f2_12 sf
( )S
f3_12 sf
( )S
78 132 :M
psb
currentpoint pse
79 133 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Symbol 0 0 0 50 T
(") t
36 42 /Times-Italic 0 0 0 50 T
(e) t
70 42 /Symbol 0 0 0 50 T
(\316) t
118 42 /Times-Roman 0 0 0 50 T
(edge) t
pse
psb
pse
gR
gS 0 41 552 480 rC
132 143 :M
f0_10 sf
(,)S
150 143 :M
-.075(dest-location\()A
204 136 9 8 rC
215 147 :M
f2_12 sf
( )S
204 136 :M
psb
currentpoint pse
205 137 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 25 /Times-Italic 0 0 0 50 T
(e) t
pse
psb
pse
gR
gS 0 41 552 480 rC
213 143 :M
f0_10 sf
-.019(\) = location\(to-node\()A
296 136 9 8 rC
307 147 :M
f2_12 sf
( )S
296 136 :M
psb
currentpoint pse
297 137 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 25 /Times-Italic 0 0 0 50 T
(e) t
pse
psb
pse
gR
gS 0 41 552 480 rC
305 143 :M
f0_10 sf
-.078(\)\).)A
60 188 :M
f1_14 sf
-.049(4.3 Visual Metaphors)A
60 218 :M
f1_12 sf
-.034(4.3.1 Definitions and Notation)A
78 248 :M
f0_10 sf
.538 .054(A visual metaphor is defined as a correspondence between some)J
345 248 :M
1.338 .134( of the features of a data and a visual)J
60 263 :M
-.022(model, i.e., elements in )A
156 263 :M
f4_14 sf
-.085(P, A, V)A
194 263 :M
f0_10 sf
.197 .02(. A metaphor induces a mapping between data schemas \(instances of the data)J
60 278 :M
1.479 .148(model\) and visual schemas \(instances of the visual model\). Basing the schema mapping on the feature)J
60 293 :M
-.018(correspondence helps produce visual schemas that, when)A
288 293 :M
.616 .062( viewed, allow the user to deduce the underlying data)J
60 308 :M
-.023(schema \(Section 4.2.1\). Consider a data model )A
f4_14 sf
(D)S
261 308 :M
f0_10 sf
.653 .065( = < )J
283 295 14 19 rC
293 306 :M
f4_14 sf
( )S
283 295 :M
psb
currentpoint pse
284 296 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 41 552 480 rC
297 308 :M
f4_10 sf
(,)S
299 295 17 19 rC
309 306 :M
f4_14 sf
( )S
299 295 :M
psb
currentpoint pse
300 296 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
6 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 41 552 480 rC
316 308 :M
f4_10 sf
(,)S
318 295 16 19 rC
328 306 :M
f4_14 sf
( )S
318 295 :M
psb
currentpoint pse
319 296 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
74 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 41 552 480 rC
334 308 :M
f4_10 sf
(,)S
336 295 17 19 rC
346 306 :M
f4_14 sf
( )S
336 295 :M
psb
currentpoint pse
337 296 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 41 552 480 rC
353 308 :M
f4_10 sf
(,)S
355 295 17 19 rC
365 306 :M
f4_14 sf
( )S
355 295 :M
psb
currentpoint pse
356 296 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
86 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 41 552 480 rC
372 308 :M
f4_10 sf
(,)S
374 295 15 19 rC
384 306 :M
f4_14 sf
( )S
374 295 :M
psb
currentpoint pse
375 296 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 41 552 480 rC
389 308 :M
f0_10 sf
.547 .055( > and a visual model )J
f4_14 sf
(G)S
492 308 :M
f0_10 sf
.748 .075( = <)J
60 310 13 19 rC
70 321 :M
f4_14 sf
( )S
60 310 :M
psb
currentpoint pse
61 311 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 41 552 480 rC
73 323 :M
f0_10 sf
(,)S
76 310 16 19 rC
86 321 :M
f4_14 sf
( )S
76 310 :M
psb
currentpoint pse
77 311 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
6 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 41 552 480 rC
92 323 :M
f0_10 sf
(,)S
95 310 15 19 rC
105 321 :M
f4_14 sf
( )S
95 310 :M
psb
currentpoint pse
96 311 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
74 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 41 552 480 rC
110 323 :M
f0_10 sf
1.818 .182(, )J
117 310 16 19 rC
127 321 :M
f4_14 sf
( )S
117 310 :M
psb
currentpoint pse
118 311 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 41 552 480 rC
133 323 :M
f0_10 sf
(,)S
136 310 16 19 rC
146 321 :M
f4_14 sf
( )S
136 310 :M
psb
currentpoint pse
137 311 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
86 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 41 552 480 rC
152 323 :M
f0_10 sf
(,)S
155 310 14 19 rC
165 321 :M
f4_14 sf
( )S
155 310 :M
psb
currentpoint pse
156 311 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 41 552 480 rC
169 323 :M
f0_10 sf
1.336 .134( >. A metaphor will include correspondences between concepts \()J
452 310 14 19 rC
462 321 :M
f4_14 sf
( )S
452 310 :M
psb
currentpoint pse
453 311 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 41 552 480 rC
466 323 :M
f0_10 sf
2.317 .232( and )J
491 310 13 19 rC
501 321 :M
f4_14 sf
( )S
491 310 :M
psb
currentpoint pse
492 311 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 41 552 480 rC
504 323 :M
f0_10 sf
-.828(\),)A
60 338 :M
1.321 .132(between attributes \()J
145 325 17 19 rC
155 336 :M
f4_14 sf
( )S
145 325 :M
psb
currentpoint pse
146 326 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
6 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 41 552 480 rC
162 338 :M
f0_10 sf
2.317 .232( and )J
187 325 16 19 rC
197 336 :M
f4_14 sf
( )S
187 325 :M
psb
currentpoint pse
188 326 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
6 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 41 552 480 rC
203 338 :M
f0_10 sf
1.796 .18(\), and between attribute values \()J
346 325 16 19 rC
356 336 :M
f4_14 sf
( )S
346 325 :M
psb
currentpoint pse
347 326 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
74 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 41 552 480 rC
362 338 :M
f0_10 sf
2.317 .232( and )J
387 325 15 19 rC
397 336 :M
f4_14 sf
( )S
387 325 :M
psb
currentpoint pse
388 326 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
74 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 41 552 480 rC
402 338 :M
f0_10 sf
1.962 .196(\). \(The)J
438 338 :M
2.546 .255( above define a)J
60 353 :M
-.012(correspondence between constraints as well, since constraints refer to elements of the )A
404 353 :M
f4_14 sf
-.177(P, A,)A
f0_10 sf
-.135( and )A
f4_14 sf
(V)S
457 353 :M
f0_10 sf
-.118( sets.\) )A
483 353 :M
.417 .042( These)J
60 368 :M
(correspondences describe the meaning of visual model features with respect)S
.185 .018( to the underlying data model. For)J
60 383 :M
(example, given)S
.506 .051( the data and visual models from Section 4.2.4, if a correspondence were defined between the)J
60 398 :M
-.051(concepts )A
f2_10 sf
-.051(entity-class)A
143 398 :M
f0_10 sf
-.081( and )A
f2_10 sf
-.102(node)A
f0_10 sf
-.089(, then every)A
228 398 :M
.426 .043( instance of a )J
f2_10 sf
.205(node)A
f0_10 sf
.599 .06( in a visual schema would imply the existence of)J
60 413 :M
.965 .096(a )J
69 413 :M
f2_10 sf
-.049(entity-class)A
115 413 :M
f0_10 sf
1.552 .155( in the data schema. To allow presentation flexibility, we permit correspondences to exist)J
60 428 :M
-.007(between multiple features in the visual model and a single feature in the data model \(an example of this)A
474 428 :M
.398 .04( is given)J
60 443 :M
(in the)S
.567 .057( next section\). This is possible only when the visual model has a greater information capacity than the)J
60 458 :M
-.013(data model \(Section 4.2.1\), which is almost always the case.)A
60 488 :M
f1_10 sf
-.05(Definition 3)A
f0_10 sf
-.054( A metaphor )A
165 477 8 16 rC
175 488 :M
f2_12 sf
( )S
165 477 :M
psb
currentpoint pse
166 478 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 41 552 480 rC
173 488 :M
f0_10 sf
-.026( is an onto function from )A
275 488 :M
f4_14 sf
(G)S
284 488 :M
f0_10 sf
-.259( to )A
297 488 :M
f4_14 sf
(D)S
307 488 :M
f0_10 sf
-.04( \(denoted by )A
359 475 53 19 rC
369 486 :M
f3_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
359 475 :M
psb
currentpoint pse
360 476 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(T) t
87 96 /Times-Roman 0 0 0 100 T
(:) t
139 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
235 96 /Symbol 0 0 0 100 T
(\256) t
357 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(D) t
pse
psb
pse
gR
gS 0 41 552 480 rC
412 488 :M
f0_10 sf
-.828(\),)A
418 488 :M
.574 .057( which is the union of)J
60 503 :M
-.01(the following three onto functions: )A
gR
1 G
gS 64 521 156 21 rC
64 521 156 21 rF
67 524 150 13 rC
71 534 :M
0 G
f0_12 sf
-.083(Function )A
117 524 70 13 rC
127 532 :M
f3_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
117 521 :M
psb
currentpoint pse
118 522 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(T) t
58 111 /Times-Italic 0 0 0 58 T
(p) t
135 96 /Times-Roman 0 0 0 100 T
(:) t
212 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
273 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
343 96 /Symbol 0 0 0 100 T
(\256) t
466 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
527 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 67 524 150 13 rC
187 534 :M
0 G
f0_12 sf
(.)S
gR
gS 219 521 286 21 rC
219 521 286 21 rF
gR
gS 64 541 156 44 rC
64 541 156 44 rF
67 544 150 13 rC
71 554 :M
0 G
f0_12 sf
-.083(Function )A
117 544 75 13 rC
127 552 :M
f3_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
117 541 :M
psb
currentpoint pse
118 542 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(T) t
54 111 /Times-Italic 0 0 0 58 T
(a) t
131 96 /Times-Roman 0 0 0 100 T
(:) t
213 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
291 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
361 96 /Symbol 0 0 0 100 T
(\256) t
489 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
567 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 67 544 150 13 rC
192 554 :M
0 G
f0_12 sf
(, )S
gR
gS 219 541 286 44 rC
219 541 286 44 rF
222 544 280 38 rC
226 556 :M
0 G
f0_12 sf
.589 .059(which is equal to )J
315 544 45 19 rC
325 555 :M
f4_7 sf
( )S
327 555 :M
f3_7 sf
-.75( )A
f2_7 sf
( )S
330 555 :M
f5_14 sf
( )S
315 544 :M
psb
currentpoint pse
316 545 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 92 /Helvetica 0 0 0 116 T
(U) t
88 107 /Times-Italic 0 0 0 58 T
(P) t
137 107 /Symbol 0 0 0 58 T
(\316) t
191 111 /ZapfChancery-MediumItalic 0 0 0 75 T
(P) t
228 126 /ZapfChancery-MediumItalic 0 0 0 58 T
(G) t
264 88 /Times-Italic 0 0 0 100 T
(T) t
330 103 /Times-Italic 0 0 0 58 T
(a) t
334 45 /Times-Italic 0 0 0 58 T
(P) t
pse
psb
pse
gR
gS 222 544 280 38 rC
360 556 :M
0 G
f0_12 sf
.542 .054(, where for each concept)J
482 556 :M
2 .2( )J
487 545 8 16 rC
497 556 :M
f2_12 sf
( )S
487 545 :M
psb
currentpoint pse
488 546 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
pse
psb
pse
gR
gS 222 544 280 38 rC
495 556 :M
0 G
f0_12 sf
(,)S
226 563 120 19 rC
236 574 :M
f3_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
226 563 :M
psb
currentpoint pse
227 564 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(T) t
66 111 /Times-Italic 0 0 0 58 T
(a) t
70 53 /Times-Italic 0 0 0 58 T
(P) t
129 96 /Times-Roman 0 0 0 100 T
(:) t
181 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
265 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
311 96 /Times-Roman 0 0 0 100 T
(\() t
344 96 /Times-Italic 0 0 0 100 T
(P) t
404 96 /Times-Roman 0 0 0 100 T
(\)) t
461 96 /Symbol 0 0 0 100 T
(\256) t
583 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
667 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
719 96 /Times-Roman 0 0 0 100 T
(\() t
752 96 /Times-Italic 0 0 0 100 T
(T) t
810 111 /Times-Italic 0 0 0 58 T
(p) t
839 96 /Times-Roman 0 0 0 100 T
(\() t
872 96 /Times-Italic 0 0 0 100 T
(P) t
932 96 /Times-Roman 0 0 0 100 T
(\)\)) t
pse
psb
pse
gR
gS 222 544 280 38 rC
346 576 :M
0 G
f0_12 sf
-.032( is an onto function.)A
442 572 :M
f0_9 sf
-.5(5)A
0 4 rm
( )S
0 -4 rm
gR
gS 64 584 156 44 rC
64 584 156 44 rF
67 587 150 13 rC
71 597 :M
0 G
f0_12 sf
-.083(Function )A
117 587 72 13 rC
127 595 :M
f3_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
117 584 :M
psb
currentpoint pse
118 585 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(T) t
54 111 /Times-Italic 0 0 0 58 T
(v) t
128 96 /Times-Roman 0 0 0 100 T
(:) t
204 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
278 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
348 96 /Symbol 0 0 0 100 T
(\256) t
470 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
544 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 67 587 150 13 rC
189 597 :M
0 G
f0_12 sf
(, )S
gR
gS 219 584 286 44 rC
219 584 286 44 rF
222 587 280 38 rC
226 599 :M
0 G
f0_12 sf
.589 .059(which is equal to )J
315 587 59 19 rC
325 598 :M
f4_7 sf
( )S
327 598 :M
f3_7 sf
-.75( )A
f0_7 sf
( )S
330 598 :M
f2_7 sf
( )S
332 598 :M
f5_14 sf
( )S
315 587 :M
psb
currentpoint pse
316 588 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 92 /Helvetica 0 0 0 116 T
(U) t
88 107 /Times-Italic 0 0 0 58 T
(P) t
123 107 /Times-Roman 0 0 0 58 T
(.) t
140 107 /Times-Italic 0 0 0 58 T
(A) t
189 107 /Symbol 0 0 0 58 T
(\316) t
246 111 /ZapfChancery-MediumItalic 0 0 0 75 T
(A) t
296 126 /ZapfChancery-MediumItalic 0 0 0 58 T
(G) t
332 88 /Times-Italic 0 0 0 100 T
(T) t
398 103 /Times-Italic 0 0 0 58 T
(v) t
402 45 /Times-Italic 0 0 0 58 T
(P) t
437 45 /Times-Roman 0 0 0 58 T
(.) t
454 45 /Times-Italic 0 0 0 58 T
(A) t
pse
psb
pse
gR
gS 222 587 280 38 rC
374 599 :M
0 G
f0_12 sf
.576 .058(, where for each attribute)J
226 608 18 16 rC
236 619 :M
( )S
f2_12 sf
( )S
226 608 :M
psb
currentpoint pse
227 609 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
60 83 /Times-Roman 0 0 0 100 T
(.) t
88 83 /Times-Italic 0 0 0 100 T
(A) t
pse
psb
pse
gR
gS 222 587 280 38 rC
244 619 :M
0 G
f0_12 sf
(, )S
250 606 148 19 rC
260 617 :M
f3_12 sf
-.318( )A
f4_14 sf
-.326( )A
f0_7 sf
( )S
268 617 :M
f2_12 sf
( )S
250 606 :M
psb
currentpoint pse
251 607 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(T) t
66 111 /Times-Italic 0 0 0 58 T
(v) t
70 53 /Times-Italic 0 0 0 58 T
(P) t
105 53 /Times-Roman 0 0 0 58 T
(.) t
122 53 /Times-Italic 0 0 0 58 T
(A) t
181 96 /Times-Roman 0 0 0 100 T
(:) t
233 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
319 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
365 96 /Times-Roman 0 0 0 100 T
(\() t
398 96 /Times-Italic 0 0 0 100 T
(P) t
458 96 /Times-Roman 0 0 0 100 T
(.) t
486 96 /Times-Italic 0 0 0 100 T
(A) t
546 96 /Times-Roman 0 0 0 100 T
(\)) t
603 96 /Symbol 0 0 0 100 T
(\256) t
725 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
811 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
863 96 /Times-Roman 0 0 0 100 T
(\() t
896 96 /Times-Italic 0 0 0 100 T
(T) t
950 111 /Times-Italic 0 0 0 58 T
(a) t
979 96 /Times-Roman 0 0 0 100 T
(\() t
1012 96 /Times-Italic 0 0 0 100 T
(P) t
1072 96 /Times-Roman 0 0 0 100 T
(.) t
1100 96 /Times-Italic 0 0 0 100 T
(A) t
1160 96 /Times-Roman 0 0 0 100 T
(\)\)) t
pse
psb
pse
gR
gS 222 587 280 38 rC
398 619 :M
0 G
f0_12 sf
-.032( is an onto function.)A
gR
gS 0 628 552 45 rC
78 655 :M
0 G
f0_10 sf
-.021(As mentioned above, all constraints in )A
234 642 14 19 rC
244 653 :M
f4_14 sf
( )S
234 642 :M
psb
currentpoint pse
235 643 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 628 552 45 rC
248 655 :M
0 G
f0_10 sf
-.072( use elements)A
302 655 :M
.568 .057( that refer to identifiers in )J
413 642 13 19 rC
423 653 :M
f4_14 sf
( )S
413 642 :M
psb
currentpoint pse
414 643 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 628 552 45 rC
426 655 :M
0 G
f0_10 sf
.909 .091(, )J
432 642 16 19 rC
442 653 :M
f4_14 sf
( )S
432 642 :M
psb
currentpoint pse
433 643 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
6 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 628 552 45 rC
448 655 :M
0 G
f0_10 sf
.424 .042(, and )J
472 642 15 19 rC
482 653 :M
f4_14 sf
( )S
472 642 :M
psb
currentpoint pse
473 643 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
74 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 628 552 45 rC
487 655 :M
0 G
f0_10 sf
.676 .068(. We)J
60 670 :M
.38 .038(occasionally use the notation)J
179 659 21 14 rC
189 670 :M
f0_12 sf
( )S
f2_12 sf
( )S
179 659 :M
psb
currentpoint pse
180 660 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
63 83 /Times-Roman 0 0 0 100 T
(\() t
96 83 /Times-Italic 0 0 0 100 T
(c) t
140 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 628 552 45 rC
200 670 :M
0 G
f0_10 sf
.909 .091(, )J
206 657 33 16 rC
216 668 :M
f4_12 sf
( )S
219 668 :M
f3_12 sf
( )S
f2_12 sf
( )S
206 657 :M
psb
currentpoint pse
207 658 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(c) t
68 96 /Symbol 0 0 0 100 T
(\316) t
160 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
226 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 628 552 45 rC
239 670 :M
0 G
f0_10 sf
.585 .059(, for the constraint constructed from )J
391 659 6 14 rC
401 670 :M
f2_12 sf
( )S
391 659 :M
psb
currentpoint pse
392 660 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(c) t
pse
psb
pse
gR
gS 0 628 552 45 rC
397 670 :M
0 G
f0_10 sf
.744 .074( by replacing each element)J
gR
0 G
gS 0 0 552 730 rC
60 675.5 -.5 .5 172.5 675 .5 60 675 @a
0 679 552 31 rC
78 687 :M
f0_9 sf
(5)S
f0_10 sf
0 4 rm
.536 .054(Note that if )J
0 -4 rm
133 681 7 14 rC
143 692 :M
f2_10 sf
( )S
133 681 :M
psb
currentpoint pse
134 682 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 75 /Times-Italic 0 0 0 83 T
(P) t
pse
psb
pse
gR
gS 0 679 552 31 rC
140 691 :M
f0_10 sf
1.2 .12( does not have an image under )J
276 681 10 15 rC
286 692 :M
f2_10 sf
( )S
276 681 :M
psb
currentpoint pse
277 682 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 75 /Times-Italic 0 0 0 83 T
(T) t
50 90 /Times-Italic 0 0 0 58 T
(p) t
pse
psb
pse
gR
gS 0 679 552 31 rC
286 691 :M
f0_10 sf
1.263 .126(, then )J
315 680 45 16 rC
325 691 :M
f2_10 sf
( )S
328 691 :M
f0_12 sf
-.34( )A
f4_12 sf
( )S
315 680 :M
psb
currentpoint pse
316 681 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /ZapfChancery-MediumItalic 0 0 0 100 T
(Q) t
71 98 /ZapfChancery-MediumItalic 0 0 0 58 T
(D) t
112 83 /Times-Roman 0 0 0 100 T
(\() t
145 79 /Times-Italic 0 0 0 83 T
(T) t
195 94 /Times-Italic 0 0 0 58 T
(p) t
224 83 /Times-Roman 0 0 0 100 T
(\() t
257 79 /Times-Italic 0 0 0 83 T
(P) t
308 83 /Times-Roman 0 0 0 100 T
(\)\)) t
pse
psb
pse
gR
gS 0 679 552 31 rC
360 691 :M
f0_10 sf
1.375 .137( is the empty set. Therefore )J
488 681 11 14 rC
498 692 :M
f2_10 sf
( )S
488 681 :M
psb
currentpoint pse
489 682 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 75 /Times-Italic 0 0 0 83 T
(T) t
56 88 /Times-Italic 0 0 0 50 T
(a) t
59 39 /Times-Italic 0 0 0 50 T
(P) t
pse
psb
pse
gR
gS 0 679 552 31 rC
499 691 :M
f0_10 sf
1.527 .153( is)J
60 706 :M
-.007(empty as well which makes it vacuously an onto function. Similar observations hold for )A
417 696 16 14 rC
427 707 :M
f0_6 sf
( )S
429 707 :M
f2_10 sf
( )S
417 696 :M
psb
currentpoint pse
418 697 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 75 /Times-Italic 0 0 0 83 T
(T) t
56 88 /Times-Italic 0 0 0 50 T
(v) t
59 39 /Times-Italic 0 0 0 50 T
(P) t
89 39 /Times-Roman 0 0 0 50 T
(.) t
102 39 /Times-Italic 0 0 0 50 T
(A) t
pse
psb
pse
gR
gS 0 679 552 31 rC
433 706 :M
f0_10 sf
(.)S
endp
%%Page: 8 8
%%BeginPageSetup
initializepage
(; page: 8 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(31)S
gR
gS 0 37 552 667 rC
60 49 :M
f0_10 sf
-.032(referring to an identifier )A
159 38 6 16 rC
169 49 :M
f2_12 sf
( )S
159 38 :M
psb
currentpoint pse
160 39 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
3 83 /Times-Italic 0 0 0 100 T
(x) t
pse
psb
pse
gR
gS 0 37 552 667 rC
165 49 :M
f0_10 sf
-.109( of )A
178 37 73 18 rC
188 47 :M
f0_12 sf
( )S
f3_12 sf
( )S
f4_14 sf
( )S
178 36 :M
psb
currentpoint pse
179 37 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
132 96 /Symbol 0 0 0 100 T
(\310) t
238 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
316 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
386 96 /Symbol 0 0 0 100 T
(\310) t
486 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
562 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 37 552 667 rC
251 49 :M
f0_10 sf
-.017( by an element referring to the identifier )A
414 38 22 16 rC
424 49 :M
f0_12 sf
( )S
f2_12 sf
( )S
414 38 :M
psb
currentpoint pse
415 39 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
63 83 /Times-Roman 0 0 0 100 T
(\() t
99 83 /Times-Italic 0 0 0 100 T
(x) t
143 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 37 552 667 rC
436 49 :M
f0_10 sf
(. We)S
.41 .041( also use the)J
60 64 :M
-.034(notation )A
95 51 42 19 rC
105 62 :M
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
95 51 :M
psb
currentpoint pse
96 52 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(T) t
63 96 /Times-Roman 0 0 0 100 T
(\() t
96 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(I) t
144 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
190 96 /Times-Roman 0 0 0 100 T
(\() t
223 96 /Times-Italic 0 0 0 100 T
(P) t
283 96 /Times-Roman 0 0 0 100 T
(\)\)) t
pse
psb
pse
gR
gS 0 37 552 667 rC
137 64 :M
f0_10 sf
-.093( to denote )A
179 51 43 19 rC
189 62 :M
f2_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
179 51 :M
psb
currentpoint pse
180 52 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(I) t
48 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
100 96 /Times-Roman 0 0 0 100 T
(\() t
133 96 /Times-Italic 0 0 0 100 T
(T) t
196 96 /Times-Roman 0 0 0 100 T
(\() t
229 96 /Times-Italic 0 0 0 100 T
(P) t
289 96 /Times-Roman 0 0 0 100 T
(\)\)) t
pse
psb
pse
gR
gS 0 37 552 667 rC
222 64 :M
f0_10 sf
(.)S
60 94 :M
f1_12 sf
-.021(4.3.2 The Induced Schema Mapping)A
78 124 :M
f0_10 sf
-.042(Given a metaphor)A
150 124 :M
.64 .064( as defined above, a mapping between data and visual schemas can be induced. Using)J
60 139 :M
.486 .049(this induced mapping, any data schema of )J
f4_14 sf
(D)S
247 139 :M
f0_10 sf
.705 .07( can be transformed to a visual schema of )J
f4_14 sf
(G)S
435 139 :M
f0_10 sf
1.394 .139( in a manner that)J
60 154 :M
-.01(remains faithful to the metaphor.)A
60 184 :M
f1_10 sf
.988 .099(Definition 4)J
f0_10 sf
.503 .05( Given a metaphor )J
195 171 53 19 rC
205 182 :M
f3_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
195 171 :M
psb
currentpoint pse
196 172 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(T) t
86 96 /Times-Roman 0 0 0 100 T
(:) t
134 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
230 98 /Symbol 0 0 0 100 T
(\256) t
344 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(D) t
pse
psb
pse
gR
gS 0 37 552 667 rC
248 184 :M
f0_10 sf
.573 .057( and a visual schema of )J
f4_14 sf
(G)S
359 184 :M
f0_10 sf
.909 .091(, )J
365 173 8 16 rC
375 184 :M
f2_12 sf
( )S
365 173 :M
psb
currentpoint pse
366 174 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 37 552 667 rC
373 184 :M
f0_10 sf
.589 .059( induces an onto function )J
482 173 4 16 rC
492 184 :M
f2_12 sf
( )S
482 173 :M
psb
currentpoint pse
483 174 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(t) t
pse
psb
pse
gR
gS 0 37 552 667 rC
486 184 :M
f0_10 sf
.762 .076( from)J
60 187 173 20 rC
70 198 :M
f0_7 sf
( )S
72 198 :M
f4_7 sf
-.604( )A
f3_7 sf
( )S
75 198 :M
f2_7 sf
( )S
77 198 :M
f5_14 sf
( )S
60 187 :M
psb
currentpoint pse
61 188 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
38 92 /Helvetica 0 0 0 116 T
(U) t
126 107 /Times-Italic 0 0 0 58 T
(P) t
175 107 /Symbol 0 0 0 58 T
(\316) t
229 111 /ZapfChancery-MediumItalic 0 0 0 75 T
(P) t
273 131 /ZapfChancery-MediumItalic 0 0 0 58 T
(G) t
341 88 /Times-Italic 0 0 0 100 T
(P) t
/Lw {onepx sub setlinewidth} bind def
2 Lw /S /stroke load def
/M {currentlinewidth .5 mul add exch currentlinewidth .5 mul add exch moveto} bind def
/L {currentlinewidth .5 mul add exch currentlinewidth .5 mul add exch lineto} bind def
333 13 M
315 13 L
315 111 M
333 111 L
S
6 Lw 315 13 M
315 107 L
S
2 Lw 407 13 M
425 13 L
425 111 M
407 111 L
S
6 Lw 421 13 M
421 107 L
S
/H {newpath moveto 2 copy curveto 2 copy curveto fill} bind def
7 5 7 74 14 5 31 5 14 74 H
7 143 7 74 14 143 31 143 14 74 H
464 5 464 74 457 5 440 5 457 74 H
464 143 464 74 457 143 440 143 457 74 H
495 92 /Symbol 0 0 0 116 T
(\310) t
661 88 /Times-Roman 0 0 0 100 T
([) t
694 88 /Times-Italic 0 0 0 100 T
(P) t
754 88 /Times-Roman 0 0 0 100 T
(.) t
782 88 /Times-Italic 0 0 0 100 T
(A) t
842 88 /Times-Roman 0 0 0 100 T
(]) t
923 88 /Times-Roman 0 0 0 100 T
(|) t
991 88 /Times-Italic 0 0 0 100 T
(P) t
1051 88 /Times-Roman 0 0 0 100 T
(.) t
1079 88 /Times-Italic 0 0 0 100 T
(A) t
1163 88 /Symbol 0 0 0 100 T
(\316) t
1264 92 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
1340 115 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
631 5 631 37 638 5 654 5 638 37 H
638 69 638 37 631 69 615 69 631 37 H
638 69 638 101 631 69 615 69 631 101 H
631 133 631 101 638 133 654 133 638 101 H
1416 5 1416 37 1409 5 1393 5 1409 37 H
1409 69 1409 37 1416 69 1432 69 1416 37 H
1409 69 1409 101 1416 69 1432 69 1416 101 H
1416 133 1416 101 1409 133 1393 133 1409 101 H
pse
psb
pse
gR
gS 0 37 552 667 rC
233 199 :M
f0_10 sf
( onto the corresponding features of some data)S
.089 .009( schema of )J
464 188 9 16 rC
474 199 :M
f2_12 sf
( )S
464 188 :M
psb
currentpoint pse
465 189 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(D) t
pse
psb
pse
gR
gS 0 37 552 667 rC
473 199 :M
f0_10 sf
.36 .036( with the)J
60 214 :M
-.032(following characteristics: )A
78 244 :M
-.998(\245 )A
84 231 106 19 rC
94 242 :M
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
f3_12 sf
( )S
84 231 :M
psb
currentpoint pse
85 232 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
38 96 /Symbol 0 0 0 100 T
(") t
109 96 /Times-Italic 0 0 0 100 T
(P) t
193 96 /Symbol 0 0 0 100 T
(\316) t
289 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
359 124 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
/H {newpath moveto 2 copy curveto 2 copy curveto fill} bind def
7 13 7 77 14 13 31 13 14 77 H
7 141 7 77 14 141 31 141 14 77 H
436 13 436 77 429 13 412 13 429 77 H
436 141 436 77 429 141 412 141 429 77 H
475 96 /Symbol 0 0 0 100 T
(") t
554 96 /Times-Italic 0 0 0 100 T
(p) t
628 96 /Symbol 0 0 0 100 T
(\316) t
723 96 /Times-Roman 0 0 0 100 T
([) t
756 96 /Times-Italic 0 0 0 100 T
(P) t
816 96 /Times-Roman 0 0 0 100 T
(]) t
449 21 449 71 455 21 469 21 455 71 H
449 121 449 71 455 121 469 121 455 71 H
875 21 875 71 869 21 855 21 869 71 H
875 121 875 71 869 121 855 121 869 71 H
pse
psb
pse
gR
gS 0 37 552 667 rC
190 244 :M
f0_10 sf
-.035( if )A
201 233 26 16 rC
211 244 :M
f0_12 sf
( )S
f2_12 sf
( )S
201 233 :M
psb
currentpoint pse
202 234 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
58 98 /Times-Italic 0 0 0 58 T
(p) t
87 83 /Times-Roman 0 0 0 100 T
(\() t
120 83 /Times-Italic 0 0 0 100 T
(P) t
180 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 37 552 667 rC
227 244 :M
f0_10 sf
-.022( is defined, then )A
293 233 19 16 rC
303 244 :M
f0_12 sf
( )S
f2_12 sf
( )S
293 233 :M
psb
currentpoint pse
294 234 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(t) t
29 83 /Times-Roman 0 0 0 100 T
(\() t
70 83 /Times-Italic 0 0 0 100 T
(p) t
120 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 37 552 667 rC
312 244 :M
f0_10 sf
( is a concept instance of type )S
430 233 26 16 rC
440 244 :M
f0_12 sf
( )S
f2_12 sf
( )S
430 233 :M
psb
currentpoint pse
431 234 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
58 98 /Times-Italic 0 0 0 58 T
(p) t
87 83 /Times-Roman 0 0 0 100 T
(\() t
120 83 /Times-Italic 0 0 0 100 T
(P) t
180 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 37 552 667 rC
456 244 :M
f0_10 sf
(.)S
78 259 :M
-.998(\245 )A
84 246 128 19 rC
94 257 :M
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
f3_12 sf
( )S
84 246 :M
psb
currentpoint pse
85 247 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
38 96 /Symbol 0 0 0 100 T
(") t
109 96 /Times-Italic 0 0 0 100 T
(P) t
193 96 /Symbol 0 0 0 100 T
(\316) t
289 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
359 124 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
/H {newpath moveto 2 copy curveto 2 copy curveto fill} bind def
7 13 7 77 14 13 31 13 14 77 H
7 141 7 77 14 141 31 141 14 77 H
436 13 436 77 429 13 412 13 429 77 H
436 141 436 77 429 141 412 141 429 77 H
480 96 /Symbol 0 0 0 100 T
(") t
551 96 /Times-Italic 0 0 0 100 T
(P) t
611 96 /Times-Roman 0 0 0 100 T
(.) t
639 96 /Times-Italic 0 0 0 100 T
(A) t
723 96 /Symbol 0 0 0 100 T
(\316) t
818 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
898 96 /Times-Roman 0 0 0 100 T
(\() t
931 96 /Times-Italic 0 0 0 100 T
(P) t
991 96 /Times-Roman 0 0 0 100 T
(\)) t
450 13 450 71 457 13 473 13 457 71 H
450 129 450 71 457 129 473 129 457 71 H
1054 13 1054 71 1047 13 1031 13 1047 71 H
1054 129 1054 71 1047 129 1031 129 1047 71 H
pse
psb
pse
gR
gS 0 37 552 667 rC
212 259 :M
f0_10 sf
-.035( if )A
223 248 36 16 rC
233 259 :M
f0_12 sf
( )S
f2_12 sf
( )S
223 248 :M
psb
currentpoint pse
224 249 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Italic 0 0 0 58 T
(a) t
83 83 /Times-Roman 0 0 0 100 T
(\() t
116 83 /Times-Italic 0 0 0 100 T
(P) t
176 83 /Times-Roman 0 0 0 100 T
(.) t
204 83 /Times-Italic 0 0 0 100 T
(A) t
264 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 37 552 667 rC
259 259 :M
f0_10 sf
-.022( is defined, then )A
325 248 38 16 rC
335 259 :M
f0_12 sf
( )S
f2_12 sf
( )S
325 248 :M
psb
currentpoint pse
326 249 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(t) t
29 83 /Times-Roman 0 0 0 100 T
(\([) t
95 83 /Times-Italic 0 0 0 100 T
(P) t
155 83 /Times-Roman 0 0 0 100 T
(.) t
183 83 /Times-Italic 0 0 0 100 T
(A) t
243 83 /Times-Roman 0 0 0 100 T
(]\)) t
pse
psb
pse
gR
gS 0 37 552 667 rC
363 259 :M
f0_10 sf
-.071( is a function)A
91 261 169 19 rC
101 272 :M
f4_14 sf
-.326( )A
f3_12 sf
-.318( )A
f0_7 sf
( )S
109 272 :M
f2_12 sf
( )S
91 261 :M
psb
currentpoint pse
92 262 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
32 96 /Times-Italic 0 0 0 100 T
(T) t
98 111 /Times-Italic 0 0 0 58 T
(a) t
127 96 /Times-Roman 0 0 0 100 T
(\() t
160 96 /Times-Italic 0 0 0 100 T
(P) t
220 96 /Times-Roman 0 0 0 100 T
(.) t
248 96 /Times-Italic 0 0 0 100 T
(A) t
308 96 /Times-Roman 0 0 0 100 T
(\)) t
/Lw {onepx sub setlinewidth} bind def
2 Lw /S /stroke load def
/M {currentlinewidth .5 mul add exch currentlinewidth .5 mul add exch moveto} bind def
/L {currentlinewidth .5 mul add exch currentlinewidth .5 mul add exch lineto} bind def
24 21 M
6 21 L
6 119 M
24 119 L
S
6 Lw 6 21 M
6 115 L
S
2 Lw 347 21 M
365 21 L
365 119 M
347 119 L
S
6 Lw 361 21 M
361 115 L
S
397 96 /Times-Roman 0 0 0 100 T
(:) t
449 96 /Times-Italic 0 0 0 100 T
(T) t
519 111 /Times-Italic 0 0 0 58 T
(p) t
548 96 /Times-Roman 0 0 0 100 T
(\() t
581 96 /Times-Italic 0 0 0 100 T
(P) t
641 96 /Times-Roman 0 0 0 100 T
(\)) t
698 96 /Symbol 0 0 0 100 T
(\256) t
857 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
943 121 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
946 49 /Times-Roman 0 0 0 58 T
(*) t
995 96 /Times-Roman 0 0 0 100 T
(\() t
1028 96 /Times-Italic 0 0 0 100 T
(T) t
1094 111 /Times-Italic 0 0 0 58 T
(a) t
1123 96 /Times-Roman 0 0 0 100 T
(\() t
1156 96 /Times-Italic 0 0 0 100 T
(P) t
1216 96 /Times-Roman 0 0 0 100 T
(.) t
1244 96 /Times-Italic 0 0 0 100 T
(A) t
1304 96 /Times-Roman 0 0 0 100 T
(\)\)) t
2 Lw 848 9 M
827 9 L
827 127 M
848 127 L
S
7 Lw 827 9 M
827 122 L
S
2 Lw 1377 9 M
1398 9 L
1398 127 M
1377 127 L
S
7 Lw 1393 9 M
1393 122 L
S
pse
psb
pse
gR
gS 0 37 552 667 rC
260 274 :M
f0_10 sf
-.082( such that )A
301 263 53 16 rC
311 274 :M
f0_12 sf
( )S
f2_12 sf
( )S
f3_12 sf
( )S
301 263 :M
psb
currentpoint pse
302 264 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
32 83 /Symbol 0 0 0 100 T
(") t
111 83 /Times-Italic 0 0 0 100 T
(p) t
185 83 /Symbol 0 0 0 100 T
(\316) t
280 83 /Times-Roman 0 0 0 100 T
([) t
313 83 /Times-Italic 0 0 0 100 T
(P) t
373 83 /Times-Roman 0 0 0 100 T
(]) t
/H {newpath moveto 2 copy curveto 2 copy curveto fill} bind def
6 8 6 58 12 8 26 8 12 58 H
6 108 6 58 12 108 26 108 12 58 H
432 8 432 58 426 8 412 8 426 58 H
432 108 432 58 426 108 412 108 426 58 H
pse
psb
pse
gR
gS 0 37 552 667 rC
354 274 :M
f0_10 sf
-.026( the following holds: )A
118 289 :M
-.035(if )A
129 278 59 16 rC
139 289 :M
f2_12 sf
( )S
f0_12 sf
( )S
129 278 :M
psb
currentpoint pse
130 279 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
([) t
33 83 /Times-Italic 0 0 0 100 T
(P) t
93 83 /Times-Roman 0 0 0 100 T
(.) t
121 83 /Times-Italic 0 0 0 100 T
(A) t
181 83 /Times-Roman 0 0 0 100 T
(]\() t
255 83 /Times-Italic 0 0 0 100 T
(p) t
305 83 /Times-Roman 0 0 0 100 T
(\)) t
362 83 /Times-Roman 0 0 0 100 T
(=) t
442 83 /Times-Italic 0 0 0 100 T
(v) t
pse
psb
pse
gR
gS 0 37 552 667 rC
188 289 :M
f0_10 sf
-.073( and )A
212 278 138 16 rC
222 289 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
212 278 :M
psb
currentpoint pse
213 279 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
63 83 /Times-Roman 0 0 0 100 T
(\() t
96 83 /Times-Italic 0 0 0 100 T
(P) t
156 83 /Times-Roman 0 0 0 100 T
(.) t
184 83 /Times-Italic 0 0 0 100 T
(A) t
292 83 /Times-Roman 0 0 0 100 T
(==) t
428 83 /Times-Italic 0 0 0 100 T
(v) t
472 83 /Times-Roman 0 0 0 100 T
(\)) t
553 83 /Times-Roman 0 0 0 100 T
(=) t
657 83 /Times-Roman 0 0 0 100 T
(\() t
690 83 /Times-Italic 0 0 0 100 T
(P) t
750 83 /Symbol 0 0 0 100 T
(\242) t
774 83 /Times-Roman 0 0 0 100 T
(.) t
802 83 /Times-Italic 0 0 0 100 T
(A) t
862 83 /Symbol 0 0 0 100 T
(\242) t
910 83 /Times-Roman 0 0 0 100 T
(==) t
1046 83 /Times-Italic 0 0 0 100 T
(v) t
1090 83 /Symbol 0 0 0 100 T
(\242) t
1114 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 37 552 667 rC
118 304 :M
f0_10 sf
-.179(then )A
138 293 84 16 rC
148 304 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
138 293 :M
psb
currentpoint pse
139 294 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(t) t
29 83 /Times-Roman 0 0 0 100 T
(\([) t
95 83 /Times-Italic 0 0 0 100 T
(P) t
155 83 /Times-Roman 0 0 0 100 T
(.) t
183 83 /Times-Italic 0 0 0 100 T
(A) t
243 83 /Times-Roman 0 0 0 100 T
(]\)\() t
342 83 /Times-Italic 0 0 0 100 T
(t) t
371 83 /Times-Roman 0 0 0 100 T
(\() t
412 83 /Times-Italic 0 0 0 100 T
(p) t
462 83 /Times-Roman 0 0 0 100 T
(\)\)) t
552 83 /Times-Roman 0 0 0 100 T
(=) t
632 83 /Times-Italic 0 0 0 100 T
(v) t
676 83 /Symbol 0 0 0 100 T
(\242) t
pse
psb
pse
gR
gS 0 37 552 667 rC
222 304 :M
f2_10 sf
(.)S
78 334 :M
f0_10 sf
-.01(The first clause above states that concept instances of the visual schema in )A
f4_14 sf
(G)S
387 334 :M
f0_10 sf
-.033( represent concept instances)A
499 334 :M
.601 .06( in)J
60 349 :M
-.027(some data schema in )A
146 349 :M
f4_14 sf
(D)S
156 349 :M
f0_10 sf
.633 .063( based on the type correspondence specified by )J
355 338 8 16 rC
365 349 :M
f2_12 sf
( )S
355 338 :M
psb
currentpoint pse
356 339 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 37 552 667 rC
363 349 :M
f0_10 sf
.598 .06(. The second clause states that, for)J
60 364 :M
.606 .061(every visual model attribute mapped by )J
227 353 12 16 rC
237 364 :M
f0_7 sf
( )S
239 364 :M
f2_12 sf
( )S
227 353 :M
psb
currentpoint pse
228 354 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 37 552 667 rC
239 364 :M
f0_10 sf
.562 .056(, there exists a data model attribute whose)J
414 364 :M
1.132 .113( values are determined)J
60 379 :M
.497 .05(based on the value correspondence )J
207 368 12 16 rC
217 379 :M
f0_7 sf
( )S
219 379 :M
f2_12 sf
( )S
207 368 :M
psb
currentpoint pse
208 369 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(v) t
pse
psb
pse
gR
gS 0 37 552 667 rC
219 379 :M
f0_10 sf
.538 .054(. Essentially, this is a commutivity requirement that)J
436 379 :M
1.311 .131( is best shown in)J
60 394 :M
.592 .059(Figure 4.1. Based on the two clauses above, the induced function)J
334 394 :M
1.5 .15( )J
338 383 4 16 rC
348 394 :M
f2_12 sf
( )S
338 383 :M
psb
currentpoint pse
339 384 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(t) t
pse
psb
pse
gR
gS 0 37 552 667 rC
342 394 :M
f0_10 sf
1.244 .124( determines a mapping from any visual)J
60 409 :M
-.085(schema in )A
103 409 :M
f4_14 sf
(G)S
112 409 :M
f0_10 sf
-.036( to some data schema in)A
208 409 :M
-.061( )A
f4_14 sf
(D)S
221 409 :M
f0_10 sf
.679 .068(. As with the metaphor )J
323 398 8 16 rC
333 409 :M
f2_12 sf
( )S
323 398 :M
psb
currentpoint pse
324 399 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 37 552 667 rC
331 409 :M
f0_10 sf
.533 .053(, the induced function )J
425 398 4 16 rC
435 409 :M
f2_12 sf
( )S
425 398 :M
psb
currentpoint pse
426 399 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(t) t
pse
psb
pse
gR
gS 0 37 552 667 rC
429 409 :M
f0_10 sf
.657 .066( can be extended to)J
60 424 :M
-.012(include in its domain instantiations of constraints, )A
262 413 25 16 rC
272 424 :M
f0_12 sf
( )S
f2_12 sf
( )S
262 413 :M
psb
currentpoint pse
263 414 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(t) t
29 83 /Times-Roman 0 0 0 100 T
(\([) t
95 83 /Times-Italic 0 0 0 100 T
(c) t
139 83 /Times-Roman 0 0 0 100 T
(]\)) t
pse
psb
pse
gR
gS 0 37 552 667 rC
287 424 :M
f0_10 sf
-.164( for )A
304 411 33 19 rC
314 422 :M
f4_14 sf
( )S
f0_12 sf
( )S
f3_12 sf
( )S
f2_12 sf
( )S
304 411 :M
psb
currentpoint pse
305 412 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(c) t
68 96 /Symbol 0 0 0 100 T
(\316) t
163 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
229 124 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 37 552 667 rC
337 424 :M
f0_10 sf
(.)S
.5 G
60 427 449 117 rC
-36 299 -1 1 -34 299 1 -36 298 @a
-36 299 -1 1 -34 299 1 -36 298 @a
gS
.802 .807 scale
84.814 557.7 :M
0 G
f7_10 sf
(p)S
gR
gS
.802 .807 scale
164.638 541.589 :M
0 G
f7_10 sf
.331([P.A])A
gR
gS
.802 .807 scale
375.425 602.316 :M
0 G
f7_10 sf
(T)S
gR
gS
.802 .807 scale
79.825 602.316 :M
0 G
f7_10 sf
(t)S
gR
gS
.802 .807 scale
159.649 602.316 :M
0 G
f7_10 sf
(t)S
gR
gS
.802 .807 scale
79.825 666.762 :M
0 G
f7_10 sf
(t\(p\))S
gR
gS
.802 .807 scale
159.649 651.89 :M
0 G
f7_10 sf
.127(t\([P.A]\))A
gR
gS
.802 .807 scale
339.255 666.762 :M
0 G
f7_10 sf
-.008(P'.A' == v')A
gR
:a
0 fg bk :b
.25 lw
[3 3 ] 0 :q
212 447 80 447 :r
[] 0 :q
80 447 :M
psb
pse
:e
0 G
np 212 447 :M
209 450 :L
216 447 :L
209 445 :L
212 447 :L
eofill
:a
0 fg bk :b
[3 3 ] 0 :q
212 536 80 536 :r
[] 0 :q
80 536 :M
psb
pse
:e
0 G
np 212 536 :M
209 538 :L
216 536 :L
209 534 :L
212 536 :L
eofill
-.25 -.25 72.25 523.25 .25 .25 72 455 @b
np 72 523 :M
70 521 :L
72 528 :L
74 521 :L
72 523 :L
eofill
-.25 -.25 140.25 511.25 .25 .25 140 439 @b
np 140 511 :M
138 508 :L
140 516 :L
143 508 :L
140 511 :L
eofill
-.25 -.25 293.25 523.25 .25 .25 293 455 @b
np 293 523 :M
290 521 :L
293 528 :L
295 521 :L
293 523 :L
eofill
353 496.25 -.25 .25 384.25 496 .25 353 496 @a
np 384 496 :M
382 498 :L
389 496 :L
382 493 :L
384 496 :L
eofill
:a
0 fg bk :b
[3 3 ] 0 :q
384 512 353 512 :r
[] 0 :q
353 512 :M
psb
pse
:e
0 G
np 384 512 :M
382 514 :L
389 512 :L
382 509 :L
384 512 :L
eofill
gS
.802 .807 scale
495.162 637.018 :M
f5_10 sf
.606 .061(Attribute Function Application)J
gR
.5 G
gS
.802 .807 scale
495.162 617.188 :M
0 G
f5_10 sf
.11(Metaphor)A
gR
gS
.802 .807 scale
274.397 557.7 :M
0 G
f7_10 sf
(v)S
gR
gS
.802 .807 scale
274.397 666.762 :M
0 G
f7_10 sf
.091(v')A
gR
gS
.802 .807 scale
344.244 557.7 :M
0 G
f7_10 sf
-.051(P.A == v)A
gR
:a
0 fg bk :b
1 lw
[1 1 ] 0 :q
272 447 232 447 :r
[] 0 :q
232 447 :M
psb
pse
[1 1 ] 0 :q
268 536 232 536 :r
[] 0 :q
232 536 :M
psb
pse
[1 1 ] 0 :q
389 479 353 479 :r
[] 0 :q
353 479 :M
psb
pse
:e
gS
.802 .807 scale
495.162 597.359 :M
0 G
f5_10 sf
-.032(Value to Identifier )A
f3_10 sf
(\316)S
582.47 597.359 :M
f5_10 sf
-.356( )A
f4_10 sf
(V)S
gR
.5 G
gR
gS 0 37 552 667 rC
131 556 :M
f0_10 sf
-.008(Figure 4.1. Commuting diagram between metaphors and attribute functions.)A
60 598 :M
f1_12 sf
-.041(4.3.3 An Example )A
78 628 :M
f0_10 sf
.562 .056(To illustrate the above definitions, we present a metaphor )J
320 617 8 16 rC
330 628 :M
f2_12 sf
( )S
320 617 :M
psb
currentpoint pse
321 618 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 37 552 667 rC
328 628 :M
f0_10 sf
.759 .076(. This metaphor maps from a visual model)J
60 643 :M
.773 .077(similar to that in Section 4.2.4 to the data model discussed in the same section. The visual model has been)J
60 658 :M
1.147 .115(supplemented with an additional concept, called a blob, which consists of a region and two text-displays,)J
60 673 :M
-.014(referred to as label1 and label2. Also, the from-node and)A
289 673 :M
.518 .052( to-node attributes of relationship have been extended)J
60 688 :M
-.009(to accept as values both nodes and blobs. This function )A
285 677 8 16 rC
295 688 :M
f2_12 sf
( )S
285 677 :M
psb
currentpoint pse
286 678 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 37 552 667 rC
293 688 :M
f0_10 sf
-.015( is defined in the Table 4.5.)A
endp
%%Page: 9 9
%%BeginPageSetup
initializepage
(; page: 9 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(32)S
gR
1 G
gS 128 45 138 22 rC
128 45 138 22 rF
gR
0 G
gS 0 0 552 730 rC
128 46 -1 1 266 45 1 128 45 @a
128 67 -1 1 266 66 1 128 66 @a
-1 -1 129 67 1 1 128 45 @b
135 48 9 16 rC
146 59 :M
f2_12 sf
( )S
135 48 :M
psb
currentpoint pse
136 49 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 42 /Times-Italic 0 0 0 50 T
(x) t
pse
psb
pse
gR
1 G
gS 265 45 176 22 rC
265 45 176 22 rF
gR
0 G
gS 0 0 552 730 rC
265 46 -1 1 441 45 1 265 45 @a
-1 -1 441 67 1 1 440 45 @b
265 67 -1 1 441 66 1 265 66 @a
272 48 25 16 rC
283 59 :M
f0_12 sf
( )S
f2_12 sf
( )S
272 48 :M
psb
currentpoint pse
273 49 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(T) t
32 42 /Times-Roman 0 0 0 50 T
(\() t
50 42 /Times-Italic 0 0 0 50 T
(x) t
72 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 128 66 138 16 rC
128 66 138 16 rF
gR
0 G
gS 0 0 552 730 rC
128 67 -1 1 266 66 1 128 66 @a
-1 -1 129 82 1 1 128 66 @b
131 69 132 10 rC
135 77 :M
f0_12 sf
-.082(node )A
gR
1 G
gS 265 66 176 16 rC
265 66 176 16 rF
gR
0 G
gS 0 0 552 730 rC
265 67 -1 1 441 66 1 265 66 @a
-1 -1 441 82 1 1 440 66 @b
268 69 170 10 rC
272 77 :M
f0_12 sf
-.053(entity-class )A
gR
1 G
gS 128 81 138 16 rC
128 81 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 97 1 1 128 81 @b
131 84 132 10 rC
135 92 :M
f0_12 sf
-.042(node.label-text )A
gR
1 G
gS 265 81 176 16 rC
265 81 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 97 1 1 440 81 @b
268 84 170 10 rC
272 92 :M
f0_12 sf
-.037(entity-class.name )A
gR
1 G
gS 128 96 138 16 rC
128 96 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 112 1 1 128 96 @b
131 99 132 10 rC
135 107 :M
f0_12 sf
-.009(node.label-text==x )A
gR
1 G
gS 265 96 176 16 rC
265 96 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 112 1 1 440 96 @b
268 99 170 10 rC
272 107 :M
f0_12 sf
-.008(entity-class.name==x )A
gR
1 G
gS 128 111 138 16 rC
128 111 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 127 1 1 128 111 @b
131 114 132 10 rC
135 122 :M
f0_12 sf
-.098(node.color )A
gR
1 G
gS 265 111 176 16 rC
265 111 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 127 1 1 440 111 @b
268 114 170 10 rC
272 122 :M
f0_12 sf
-.057(entity-class.kind )A
gR
1 G
gS 128 126 138 16 rC
128 126 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 142 1 1 128 126 @b
131 129 132 10 rC
135 137 :M
f0_12 sf
-.065(node.shape )A
gR
1 G
gS 265 126 176 16 rC
265 126 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 142 1 1 440 126 @b
268 129 170 10 rC
272 137 :M
f0_12 sf
-.057(entity-class.kind )A
gR
1 G
gS 128 141 138 16 rC
128 141 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 157 1 1 128 141 @b
131 144 132 10 rC
135 152 :M
f0_12 sf
-.009(node.color==\324blue\325)A
gR
1 G
gS 265 141 176 16 rC
265 141 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 157 1 1 440 141 @b
268 144 170 10 rC
272 152 :M
f0_12 sf
-.018(entity-class.kind==\324simple\325 )A
gR
1 G
gS 128 156 138 16 rC
128 156 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 172 1 1 128 156 @b
131 159 132 10 rC
135 167 :M
f0_12 sf
-.025(node.shape==\324square\325)A
gR
1 G
gS 265 156 176 16 rC
265 156 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 172 1 1 440 156 @b
268 159 170 10 rC
272 167 :M
f0_12 sf
-.018(entity-class.kind==\324simple\325 )A
gR
1 G
gS 128 171 138 16 rC
128 171 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 187 1 1 128 171 @b
131 174 132 10 rC
135 182 :M
f0_12 sf
-.051(node.color==\324red\325)A
gR
1 G
gS 265 171 176 16 rC
265 171 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 187 1 1 440 171 @b
268 174 170 10 rC
272 182 :M
f0_12 sf
-.005(entity-class.kind==\324compound\325 )A
gR
1 G
gS 128 186 138 16 rC
128 186 138 16 rF
gR
0 G
gS 0 0 552 730 rC
128 201.25 -.25 .25 265.25 201 .25 128 201 @a
-1 -1 129 202 1 1 128 186 @b
131 189 132 10 rC
135 197 :M
f0_12 sf
-.049(node.shape==\324oval\325)A
gR
1 G
gS 265 186 176 16 rC
265 186 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 202 1 1 440 186 @b
265 201.25 -.25 .25 440.25 201 .25 265 201 @a
268 189 170 10 rC
272 197 :M
f0_12 sf
-.005(entity-class.kind==\324compound\325 )A
gR
1 G
gS 128 201 138 16 rC
128 201 138 16 rF
gR
0 G
gS 0 0 552 730 rC
128 201.25 -.25 .25 265.25 201 .25 128 201 @a
-1 -1 129 217 1 1 128 201 @b
131 204 132 10 rC
135 212 :M
f0_12 sf
-.083(blob )A
gR
1 G
gS 265 201 176 16 rC
265 201 176 16 rF
gR
0 G
gS 0 0 552 730 rC
265 201.25 -.25 .25 440.25 201 .25 265 201 @a
-1 -1 441 217 1 1 440 201 @b
268 204 170 10 rC
272 212 :M
f0_12 sf
-.053(entity-class )A
gR
1 G
gS 128 216 138 16 rC
128 216 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 232 1 1 128 216 @b
131 219 132 10 rC
135 227 :M
f0_12 sf
-.04(blob.label1-text )A
gR
1 G
gS 265 216 176 16 rC
265 216 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 232 1 1 440 216 @b
268 219 170 10 rC
272 227 :M
f0_12 sf
-.037(entity-class.name )A
gR
1 G
gS 128 231 138 16 rC
128 231 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 247 1 1 128 231 @b
131 234 132 10 rC
135 242 :M
f0_12 sf
-.009(blob.label1-text==x )A
gR
1 G
gS 265 231 176 16 rC
265 231 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 247 1 1 440 231 @b
268 234 170 10 rC
272 242 :M
f0_12 sf
-.008(entity-class.name==x )A
gR
1 G
gS 128 246 138 16 rC
128 246 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 262 1 1 128 246 @b
131 249 132 10 rC
135 257 :M
f0_12 sf
-.04(blob.label2-text )A
gR
1 G
gS 265 246 176 16 rC
265 246 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 262 1 1 440 246 @b
268 249 170 10 rC
272 257 :M
f0_12 sf
-.057(entity-class.kind )A
gR
1 G
gS 128 261 138 16 rC
128 261 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 277 1 1 128 261 @b
131 264 132 10 rC
135 272 :M
f0_12 sf
-.04(blob.label2-text==\324P\325 )A
gR
1 G
gS 265 261 176 16 rC
265 261 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 277 1 1 440 261 @b
268 264 170 10 rC
272 272 :M
f0_12 sf
-.018(entity-class.kind==\324simple\325 )A
gR
1 G
gS 128 276 138 16 rC
128 276 138 16 rF
gR
0 G
gS 0 0 552 730 rC
128 291.25 -.25 .25 265.25 291 .25 128 291 @a
-1 -1 129 292 1 1 128 276 @b
131 279 132 10 rC
135 287 :M
f0_12 sf
-.008(blob.label2-text==\324C\325 )A
gR
1 G
gS 265 276 176 16 rC
265 276 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 292 1 1 440 276 @b
265 291.25 -.25 .25 440.25 291 .25 265 291 @a
268 279 170 10 rC
272 287 :M
f0_12 sf
-.005(entity-class.kind==\324compound\325 )A
gR
1 G
gS 128 291 138 16 rC
128 291 138 16 rF
gR
0 G
gS 0 0 552 730 rC
128 291.25 -.25 .25 265.25 291 .25 128 291 @a
-1 -1 129 307 1 1 128 291 @b
131 294 132 10 rC
135 302 :M
f0_12 sf
-.163(edge )A
gR
1 G
gS 265 291 176 16 rC
265 291 176 16 rF
gR
0 G
gS 0 0 552 730 rC
265 291.25 -.25 .25 440.25 291 .25 265 291 @a
-1 -1 441 307 1 1 440 291 @b
268 294 170 10 rC
272 302 :M
f0_12 sf
-.054(relationship )A
gR
1 G
gS 128 306 138 16 rC
128 306 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 322 1 1 128 306 @b
131 309 132 10 rC
135 317 :M
f0_12 sf
-.064(edge.label-text )A
gR
1 G
gS 265 306 176 16 rC
265 306 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 322 1 1 440 306 @b
268 309 170 10 rC
272 317 :M
f0_12 sf
-.037(relationship.name )A
gR
1 G
gS 128 321 138 16 rC
128 321 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 337 1 1 128 321 @b
131 324 132 10 rC
135 332 :M
f0_12 sf
-.027(edge.label-text==x )A
gR
1 G
gS 265 321 176 16 rC
265 321 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 337 1 1 440 321 @b
268 324 170 10 rC
272 332 :M
f0_12 sf
-.008(relationship.name==x )A
gR
1 G
gS 128 336 138 16 rC
128 336 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 352 1 1 128 336 @b
131 339 132 10 rC
135 347 :M
f0_12 sf
-.021(edge.from-node )A
gR
1 G
gS 265 336 176 16 rC
265 336 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 352 1 1 440 336 @b
268 339 170 10 rC
272 347 :M
f0_12 sf
-.012(relationship.from-class )A
gR
1 G
gS 128 351 138 16 rC
128 351 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 367 1 1 128 351 @b
131 354 132 10 rC
135 362 :M
f0_12 sf
-.009(edge.from-node==c )A
gR
1 G
gS 265 351 176 16 rC
265 351 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 367 1 1 440 351 @b
268 354 170 10 rC
272 362 :M
f0_12 sf
-.016(relationship.from-class==t\(c\) )A
gR
1 G
gS 128 366 138 16 rC
128 366 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 382 1 1 128 366 @b
131 369 132 10 rC
135 377 :M
f0_12 sf
-.025(edge.to-node )A
gR
1 G
gS 265 366 176 16 rC
265 366 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 382 1 1 440 366 @b
268 369 170 10 rC
272 377 :M
f0_12 sf
-.014(relationship.to-class )A
gR
1 G
gS 128 381 138 16 rC
128 381 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 397 1 1 128 381 @b
131 384 132 10 rC
135 392 :M
f0_12 sf
-.011(edge.to-node==c )A
gR
1 G
gS 265 381 176 16 rC
265 381 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 397 1 1 440 381 @b
268 384 170 10 rC
272 392 :M
f0_12 sf
-.018(relationship.to-class==t\(c\) )A
gR
1 G
gS 128 396 138 16 rC
128 396 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 412 1 1 128 396 @b
131 399 132 10 rC
135 407 :M
f0_12 sf
-.031(edge.color )A
gR
1 G
gS 265 396 176 16 rC
265 396 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 412 1 1 440 396 @b
268 399 170 10 rC
272 407 :M
f0_12 sf
-.012(relationship.card-ratio )A
gR
1 G
gS 128 411 138 16 rC
128 411 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 427 1 1 128 411 @b
131 414 132 10 rC
135 422 :M
f0_12 sf
-.025(edge.color==\324green\325 )A
gR
1 G
gS 265 411 176 16 rC
265 411 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 427 1 1 440 411 @b
268 414 170 10 rC
272 422 :M
f0_12 sf
-.004(relationship.card-ratio==\3241:1\325 )A
gR
1 G
gS 128 426 138 16 rC
128 426 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 442 1 1 128 426 @b
131 429 132 10 rC
135 437 :M
f0_12 sf
-.024(edge.color==\324orange\325 )A
gR
1 G
gS 265 426 176 16 rC
265 426 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 442 1 1 440 426 @b
268 429 170 10 rC
272 437 :M
f0_12 sf
-.004(relationship.card-ratio==\3241:1\325 )A
gR
1 G
gS 128 441 138 16 rC
128 441 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 457 1 1 128 441 @b
131 444 132 10 rC
135 452 :M
f0_12 sf
-.024(edge.color==\324yellow\325 )A
gR
1 G
gS 265 441 176 16 rC
265 441 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 457 1 1 440 441 @b
268 444 170 10 rC
272 452 :M
f0_12 sf
-.026(relationship.card-ratio==\3241:N\325 )A
gR
1 G
gS 128 456 138 16 rC
128 456 138 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 129 472 1 1 128 456 @b
131 459 132 10 rC
135 467 :M
f0_12 sf
-.027(edge.color==\324blue\325 )A
gR
1 G
gS 265 456 176 16 rC
265 456 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 472 1 1 440 456 @b
268 459 170 10 rC
272 467 :M
f0_12 sf
-.027(relationship.card-ratio==\324M:1\325 )A
gR
1 G
gS 128 471 138 16 rC
128 471 138 16 rF
gR
0 G
gS 0 0 552 730 rC
128 487 -1 1 266 486 1 128 486 @a
-1 -1 129 487 1 1 128 471 @b
131 474 132 10 rC
135 482 :M
f0_12 sf
-.043(edge.color==\324black\325 )A
gR
1 G
gS 265 471 176 16 rC
265 471 176 16 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 441 487 1 1 440 471 @b
265 487 -1 1 441 486 1 265 486 @a
268 474 170 10 rC
272 482 :M
f0_12 sf
-.015(relationship.card-ratio==\324M:N\325 )A
gR
gS 0 487 552 219 rC
220 508 :M
f0_10 sf
-.029(Table 4.5. A Sample Metaphor.)A
60 523 :M
f1_12 sf
(4.3.4 Discussion)S
78 553 :M
f0_10 sf
.013 .001(A metaphor provides meaning to features of a visual model by establishing a correspondence between them)J
60 568 :M
-.002(and the features of a data model. The precise meaning is captured by the function )A
390 557 8 16 rC
400 568 :M
f2_12 sf
( )S
390 557 :M
psb
currentpoint pse
391 558 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 487 552 219 rC
398 568 :M
f0_10 sf
-.013(. For example, displaying)A
( a)S
60 583 :M
-.123(red oval )A
95 583 :M
f2_10 sf
-.081(node)A
f0_10 sf
-.07( implies the)A
161 583 :M
.351 .035( existence of a compound )J
f2_10 sf
.104(entity-class)A
316 583 :M
f0_10 sf
.699 .07( in the data model. The use of the )J
465 572 8 16 rC
475 583 :M
f2_12 sf
( )S
465 572 :M
psb
currentpoint pse
466 573 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 487 552 219 rC
473 583 :M
f0_10 sf
.098 .01( function)J
60 598 :M
(and its induced schema mapping )S
193 587 4 16 rC
203 598 :M
f2_12 sf
( )S
193 587 :M
psb
currentpoint pse
194 588 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(t) t
pse
psb
pse
gR
gS 0 487 552 219 rC
197 598 :M
f0_10 sf
.542 .054( should produce visual schemas that users can correctly and unambiguously)J
60 613 :M
-.01(interpret. Depending on various properties of )A
245 602 8 16 rC
255 613 :M
f2_12 sf
( )S
245 602 :M
psb
currentpoint pse
246 603 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 487 552 219 rC
253 613 :M
f0_10 sf
(, the)S
.53 .053( visual schema may include features that do not carry any)J
60 628 :M
.527 .053(meaning and/or features that carry redundant meaning. Based on)J
330 628 :M
1.232 .123( knowledge of )J
396 617 8 16 rC
406 628 :M
f2_12 sf
( )S
396 617 :M
psb
currentpoint pse
397 618 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 487 552 219 rC
404 628 :M
f0_10 sf
1.34 .134(, users should be able to)J
60 643 :M
-.009(ignore the former and not be confused by the latter.)A
78 658 :M
-.009(We would like to comment on the various properties of metaphors as they relate)A
399 658 :M
.57 .057( to the relative information)J
60 673 :M
.62 .062(capacity of a data and a visual model. As a minimum requirement, a metaphor has been defined as)J
474 673 :M
1.401 .14( an onto)J
60 688 :M
-.007(function: if it were not onto, then some characteristics of a data model would not be captured visually;)A
469 688 :M
.603 .06( if it were)J
60 703 :M
1.164 .116(not a function, then a single visual construct)J
251 703 :M
1.801 .18( could have multiple meanings, and therefore could not be)J
endp
%%Page: 10 10
%%BeginPageSetup
initializepage
(; page: 10 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(33)S
gR
gS 0 44 552 630 rC
60 56 :M
f0_10 sf
-.04(interpreted correctly.)A
144 52 :M
f0_9 sf
(6)S
78 71 :M
f0_10 sf
.119 .012(For a metaphor that is not total, some visual elements do not mean anything with respect to the data model.)J
60 86 :M
-.001(If a metaphor will be used only for retrieving a data schema, )A
304 75 8 16 rC
314 86 :M
f2_12 sf
( )S
304 75 :M
psb
currentpoint pse
305 76 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 44 552 630 rC
312 86 :M
f0_10 sf
( does not have)S
.397 .04( to be total. Under retrieval, only)J
60 101 :M
(existing schemas will)S
.435 .043( be visualized, so non-totality does not create any problem. Specifically, non-totality of)J
60 105 12 16 rC
70 116 :M
f0_7 sf
( )S
72 116 :M
f2_12 sf
( )S
60 105 :M
psb
currentpoint pse
61 106 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
70 98 /Times-Italic 0 0 0 58 T
(p) t
pse
psb
pse
gR
gS 0 44 552 630 rC
72 116 :M
f0_10 sf
-.109( or )A
85 105 12 16 rC
95 116 :M
f0_7 sf
( )S
97 116 :M
f2_12 sf
( )S
85 105 :M
psb
currentpoint pse
86 106 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(v) t
pse
psb
pse
gR
gS 0 44 552 630 rC
97 116 :M
f0_10 sf
( implies that some visual concepts or some values)S
.262 .026( of visual attributes respectively will never be used,)J
60 131 :M
-.033(while non-totality of )A
145 120 12 16 rC
155 131 :M
f0_7 sf
( )S
157 131 :M
f2_12 sf
( )S
145 120 :M
psb
currentpoint pse
146 121 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 44 552 630 rC
157 131 :M
f0_10 sf
-.015( implies that the values of some attributes can)A
340 131 :M
.684 .068( be arbitrary. If a metaphor will be used)J
60 146 :M
-.024(for retrieving and updating a schema, )A
212 135 12 16 rC
222 146 :M
f0_7 sf
( )S
224 146 :M
f2_12 sf
( )S
212 135 :M
psb
currentpoint pse
213 136 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
70 98 /Times-Italic 0 0 0 58 T
(p) t
pse
psb
pse
gR
gS 0 44 552 630 rC
224 146 :M
f0_10 sf
-.11( and )A
243 135 12 16 rC
253 146 :M
f0_7 sf
( )S
255 146 :M
f2_12 sf
( )S
243 135 :M
psb
currentpoint pse
244 136 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 44 552 630 rC
255 146 :M
f0_10 sf
-.022( still do not have to be total.)A
367 146 :M
.747 .075( For )J
391 135 12 16 rC
401 146 :M
f0_7 sf
( )S
403 146 :M
f2_12 sf
( )S
391 135 :M
psb
currentpoint pse
392 136 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 44 552 630 rC
403 146 :M
f0_10 sf
.645 .064(, the reasons are the same)J
60 161 :M
(as above. A non-total)S
( )S
152 150 12 16 rC
162 161 :M
f0_7 sf
( )S
164 161 :M
f2_12 sf
( )S
152 150 :M
psb
currentpoint pse
153 151 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
70 98 /Times-Italic 0 0 0 58 T
(p) t
pse
psb
pse
gR
gS 0 44 552 630 rC
164 161 :M
f0_10 sf
.616 .062( is permissible because visual concepts that are not mapped by )J
427 150 12 16 rC
437 161 :M
f0_7 sf
( )S
439 161 :M
f2_12 sf
( )S
427 150 :M
psb
currentpoint pse
428 151 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
70 98 /Times-Italic 0 0 0 58 T
(p) t
pse
psb
pse
gR
gS 0 44 552 630 rC
439 161 :M
f0_10 sf
.611 .061( may be used for)J
60 176 :M
(presentation purposes and can be)S
.427 .043( ignored when mapping the visual schema to a data schema. For each )J
488 165 22 16 rC
499 176 :M
f0_12 sf
( )S
f2_12 sf
( )S
488 165 :M
psb
currentpoint pse
489 166 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(P) t
31 42 /Times-Roman 0 0 0 50 T
(.) t
45 42 /Times-Italic 0 0 0 50 T
(A) t
pse
psb
pse
gR
gS 0 44 552 630 rC
60 191 :M
f0_10 sf
-.019(that is mapped by )A
133 180 12 16 rC
143 191 :M
f0_7 sf
( )S
145 191 :M
f2_12 sf
( )S
133 180 :M
psb
currentpoint pse
134 181 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 44 552 630 rC
145 191 :M
f0_10 sf
-.042(, however, )A
189 180 19 16 rC
199 191 :M
f0_7 sf
( )S
201 191 :M
f2_12 sf
( )S
189 180 :M
psb
currentpoint pse
190 181 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(v) t
70 40 /Times-Italic 0 0 0 58 T
(P) t
105 40 /Times-Roman 0 0 0 58 T
(.) t
122 40 /Times-Italic 0 0 0 58 T
(A) t
pse
psb
pse
gR
gS 0 44 552 630 rC
208 191 :M
f0_10 sf
-.025( must be total. Otherwise, one could)A
355 191 :M
.613 .061( draw a visual schema that would not)J
60 206 :M
-.012(be translatable to a data schema.)A
78 221 :M
-.03(To demonstrate the use of a)A
189 221 :M
.551 .055( non-total metaphor, consider a data model )J
370 221 :M
f4_14 sf
(D)S
380 221 :M
f0_10 sf
.594 .059( capturing words in the English)J
60 236 :M
.575 .058(language as strings of letters from the Roman alphabet. A visual model )J
f4_14 sf
(G)S
371 236 :M
f0_10 sf
.527 .053( is constructed to visually present)J
60 251 :M
-.01(these words based on a straightforward metaphor that maps each display of)A
361 251 :M
.667 .067( a word to the word itself. Because)J
60 266 :M
(the strings)S
.309 .031( are visually expressed, )J
201 266 :M
f4_14 sf
(G)S
210 266 :M
f0_10 sf
.549 .055( must also include information about typeface, size, color, letter spacing,)J
60 281 :M
-.01(and other visual characteristics of letters that carry no particular meaning, i.e.,)A
372 281 :M
.5 .05( )J
375 270 12 16 rC
385 281 :M
f0_7 sf
( )S
387 281 :M
f2_12 sf
( )S
375 270 :M
psb
currentpoint pse
376 271 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 44 552 630 rC
387 281 :M
f0_10 sf
.64 .064( is not total. Hence, )J
476 281 :M
f4_14 sf
(G)S
485 281 :M
f0_10 sf
.493 .049( has a)J
60 296 :M
-.035(greater information capacity than )A
f4_14 sf
(D)S
205 296 :M
f0_10 sf
(: the number of its visual schemas is)S
.327 .033( equal to the number of English words)J
60 311 :M
-.062(\(about 600,000\))A
124 311 :M
.575 .057( multiplied many times by the possible typefaces, sizes, and the other characteristics. Yet no)J
60 326 :M
-.018(matter how font or size vary \(within reason\),)A
239 326 :M
.593 .059( a visualization of a word carries an unambiguous meaning in the)J
60 341 :M
-.032(context of the metaphor.)A
78 356 :M
.95 .095(If a metaphor is not 1-1 then multiple visual elements have the same meaning with respect to the data)J
60 371 :M
-.007(model. For both retrieval and update, the implications of this are the same. If )A
375 360 12 16 rC
385 371 :M
f0_7 sf
( )S
387 371 :M
f2_12 sf
( )S
375 360 :M
psb
currentpoint pse
376 361 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
70 98 /Times-Italic 0 0 0 58 T
(p) t
pse
psb
pse
gR
gS 0 44 552 630 rC
387 371 :M
f0_10 sf
-.109( or )A
400 360 12 16 rC
410 371 :M
f0_7 sf
( )S
412 371 :M
f2_12 sf
( )S
400 360 :M
psb
currentpoint pse
401 361 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(v) t
pse
psb
pse
gR
gS 0 44 552 630 rC
412 371 :M
f0_10 sf
( are not 1-1 then there)S
.065 .006( is)J
60 386 :M
.74 .074(a choice of visual constructs that can be used, which should be left to the user or resolved via some default)J
60 401 :M
.23 .023(mechanism. )J
112 401 :M
1.454 .145( If )J
127 390 12 16 rC
137 401 :M
f0_7 sf
( )S
139 401 :M
f2_12 sf
( )S
127 390 :M
psb
currentpoint pse
128 391 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 44 552 630 rC
139 401 :M
f0_10 sf
1.204 .12( is not 1-1 then there is redundancy: multiple visual attributes capturing the same data)J
60 416 :M
(attribute. By the)S
.505 .05( nature of visual models, there is no issue of choice here: all attributes of a concept instance)J
60 431 :M
(must have some value in a visual)S
.406 .041( schema, and therefore all those mapped to the same data attribute should be)J
60 446 :M
-.117(assigned )A
97 446 :M
f2_10 sf
-.11(consistent)A
137 446 :M
f0_10 sf
-.019( values based on )A
205 435 12 16 rC
215 446 :M
f0_7 sf
( )S
217 446 :M
f2_12 sf
( )S
205 435 :M
psb
currentpoint pse
206 436 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(v) t
pse
psb
pse
gR
gS 0 44 552 630 rC
217 446 :M
f0_10 sf
-.04(. This issue of)A
276 446 :M
.506 .051( consistency arises because of the redundancy semantics.)J
60 461 :M
-.003(For visual updates of schemas, if several visual attributes are mapped to the same attribute by )A
436 450 12 16 rC
446 461 :M
f0_7 sf
( )S
448 461 :M
f2_12 sf
( )S
436 450 :M
psb
currentpoint pse
437 451 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 44 552 630 rC
448 461 :M
f0_10 sf
-.09(, as soon)A
483 461 :M
.56 .056( as the)J
60 476 :M
-.002(value of one of them is specified, the values of all others are uniquely determined.)A
78 491 :M
(Functions that are not 1-1 establish equivalence classes among the features of the visual)S
.099 .01( model, i.e., several)J
60 506 :M
(features have the same meaning. For example, in the metaphor of Section 4.3.3, )S
78 525 165 16 rC
88 536 :M
f0_7 sf
( )S
90 536 :M
f2_12 sf
( )S
78 525 :M
psb
currentpoint pse
79 526 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
70 98 /Times-Italic 0 0 0 58 T
(p) t
99 83 /Times-Roman 0 0 0 100 T
(\() t
132 83 /Times-Roman 0 0 0 100 T
(node) t
324 83 /Times-Roman 0 0 0 100 T
(\)) t
381 83 /Times-Roman 0 0 0 100 T
(=) t
461 83 /Times-Italic 0 0 0 100 T
(T) t
531 98 /Times-Italic 0 0 0 58 T
(p) t
560 83 /Times-Roman 0 0 0 100 T
(\() t
593 83 /Times-Roman 0 0 0 100 T
(blob) t
769 83 /Times-Roman 0 0 0 100 T
(\)) t
826 83 /Times-Roman 0 0 0 100 T
(=) t
906 83 /Times-Roman 0 0 0 100 T
(entity) t
1131 83 /Times-Roman 0 0 0 100 T
(\261) t
1181 83 /Times-Roman 0 0 0 100 T
(class) t
pse
psb
pse
gR
gS 0 44 552 630 rC
60 566 :M
f0_10 sf
(implies that a concept)S
.248 .025( instance of type )J
220 566 :M
f2_10 sf
-.049(entity-class)A
266 566 :M
f0_10 sf
.597 .06( may be represented equivalently as either a visual concept)J
60 581 :M
.477 .048(instance of type )J
129 581 :M
f2_10 sf
.227(node)A
f0_10 sf
.437 .044( or one of type )J
214 581 :M
f2_10 sf
-.259(blob)A
232 581 :M
f0_10 sf
.581 .058(. Attribute correspondences are similar but more complex. A data)J
60 596 :M
(model attribute may correspond to a set of)S
.363 .036( visual attributes, some of which may come from the same concept.)J
60 611 :M
-.002(For example, in the same metaphor, )A
78 630 358 16 rC
88 641 :M
f0_7 sf
( )S
90 641 :M
f2_12 sf
( )S
78 630 :M
psb
currentpoint pse
79 631 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(a) t
95 83 /Times-Roman 0 0 0 100 T
(\() t
128 83 /Times-Roman 0 0 0 100 T
(node) t
344 83 /Times-Roman 0 0 0 100 T
(.) t
369 83 /Times-Roman 0 0 0 100 T
(color) t
572 83 /Times-Roman 0 0 0 100 T
(\)) t
629 83 /Times-Roman 0 0 0 100 T
(=) t
709 83 /Times-Italic 0 0 0 100 T
(T) t
775 98 /Times-Italic 0 0 0 58 T
(a) t
804 83 /Times-Roman 0 0 0 100 T
(\() t
837 83 /Times-Roman 0 0 0 100 T
(node) t
1029 83 /Times-Roman 0 0 0 100 T
(.) t
1054 83 /Times-Roman 0 0 0 100 T
(shape) t
1279 83 /Times-Roman 0 0 0 100 T
(\)) t
1336 83 /Times-Roman 0 0 0 100 T
(=) t
1416 83 /Times-Italic 0 0 0 100 T
(T) t
1470 98 /Times-Italic 0 0 0 58 T
(a) t
1499 83 /Times-Roman 0 0 0 100 T
(\() t
1532 83 /Times-Roman 0 0 0 100 T
(blob) t
1708 83 /Times-Roman 0 0 0 100 T
(.) t
1733 83 /Times-Roman 0 0 0 100 T
(label) t
1925 83 /Times-Roman 0 0 0 100 T
(2\261) t
2025 83 /Times-Roman 0 0 0 100 T
(text) t
2174 83 /Times-Roman 0 0 0 100 T
(\)) t
2231 83 /Times-Roman 0 0 0 100 T
(=) t
2311 83 /Times-Roman 0 0 0 100 T
(entity) t
2536 83 /Times-Roman 0 0 0 100 T
(\261) t
2586 83 /Times-Roman 0 0 0 100 T
(class) t
2778 83 /Times-Roman 0 0 0 100 T
(.) t
2803 83 /Times-Roman 0 0 0 100 T
(kind) t
pse
psb
pse
gR
gS 0 44 552 630 rC
60 671 :M
f0_10 sf
.997 .1(indicates the same choice of )J
184 671 :M
f2_10 sf
.236(node)A
f0_10 sf
.27 .027( or )J
f2_10 sf
.288(blob)A
238 671 :M
f0_10 sf
1.212 .121( concepts as above. In addition, it specifies redundancy: visual)J
gR
gS 0 0 552 730 rC
60 676.5 -.5 .5 172.5 676 .5 60 676 @a
0 680 552 28 rC
78 688 :M
f0_9 sf
(6)S
f0_10 sf
0 4 rm
.899 .09(Non-onto functions and non-functional correspondences will prove useful)J
0 -4 rm
392 692 :M
1.748 .175( in extending metaphors to)J
60 704 :M
-.002(allow visualizations of subsets of data schema information, part of our future work.)A
endp
%%Page: 11 11
%%BeginPageSetup
initializepage
(; page: 11 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(34)S
gR
gS 0 38 552 675 rC
60 50 :M
f0_10 sf
.146 .015(attributes )J
101 50 :M
f2_10 sf
.054(node.color)A
f0_10 sf
.098 .01( and )J
f2_10 sf
.057(node.shape)A
f0_10 sf
.143 .014( are)J
226 50 :M
1.209 .121( from the same concept, so they redundantly capture data attribute)J
60 65 :M
f2_10 sf
.241(entity-class.kind)A
f0_10 sf
.994 .099(. Value mappings are similar, but even more complicated, so they warrant two examples.)J
60 80 :M
-.055(First, )A
78 99 126 16 rC
88 110 :M
f0_7 sf
( )S
90 110 :M
f2_12 sf
( )S
78 99 :M
psb
currentpoint pse
79 100 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(v) t
92 83 /Times-Roman 0 0 0 100 T
(\() t
125 83 /Times-Roman 0 0 0 100 T
(edge) t
312 83 /Times-Roman 0 0 0 100 T
(.) t
337 83 /Times-Roman 0 0 0 100 T
(color) t
588 83 /Times-Roman 0 0 0 100 T
(==) t
724 83 /Times-Roman 0 0 0 100 T
(`) t
757 83 /Times-Roman 0 0 0 100 T
(green) t
977 83 /Times-Roman 0 0 0 100 T
(') t
1010 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 222 99 138 16 rC
232 110 :M
f2_12 sf
( )S
f0_12 sf
( )S
222 99 :M
psb
currentpoint pse
223 100 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
(=) t
80 83 /Times-Italic 0 0 0 100 T
(T) t
146 98 /Times-Italic 0 0 0 58 T
(v) t
172 83 /Times-Roman 0 0 0 100 T
(\() t
205 83 /Times-Roman 0 0 0 100 T
(edge) t
392 83 /Times-Roman 0 0 0 100 T
(.) t
417 83 /Times-Roman 0 0 0 100 T
(color) t
644 83 /Times-Roman 0 0 0 100 T
(==) t
780 83 /Times-Roman 0 0 0 100 T
(`) t
813 83 /Times-Roman 0 0 0 100 T
(orange) t
1082 83 /Times-Roman 0 0 0 100 T
(') t
1115 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 222 114 168 16 rC
232 125 :M
f0_12 sf
( )S
222 114 :M
psb
currentpoint pse
223 115 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
(=) t
80 83 /Times-Roman 0 0 0 100 T
(\() t
113 83 /Times-Roman 0 0 0 100 T
(relationship) t
580 83 /Times-Roman 0 0 0 100 T
(.) t
605 83 /Times-Roman 0 0 0 100 T
(card) t
775 83 /Times-Roman 0 0 0 100 T
(\261) t
825 83 /Times-Roman 0 0 0 100 T
(ratio) t
1030 83 /Times-Roman 0 0 0 100 T
(==) t
1166 83 /Times-Roman 0 0 0 100 T
(`) t
1199 83 /Times-Roman 0 0 0 100 T
(1:1) t
1326 83 /Times-Roman 0 0 0 100 T
(') t
1359 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 675 rC
60 155 :M
f0_10 sf
-.009(demonstrates attribute value choice; two values have the same meaning with respect to the metaphor. Second, )A
78 174 120 16 rC
88 185 :M
f0_7 sf
( )S
90 185 :M
f2_12 sf
( )S
78 174 :M
psb
currentpoint pse
79 175 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
66 98 /Times-Italic 0 0 0 58 T
(v) t
92 83 /Times-Roman 0 0 0 100 T
(\() t
125 83 /Times-Roman 0 0 0 100 T
(node) t
317 83 /Times-Roman 0 0 0 100 T
(.) t
342 83 /Times-Roman 0 0 0 100 T
(color) t
593 83 /Times-Roman 0 0 0 100 T
(==) t
729 83 /Times-Roman 0 0 0 100 T
(`) t
762 83 /Times-Roman 0 0 0 100 T
(blue) t
932 83 /Times-Roman 0 0 0 100 T
(') t
965 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 222 174 140 16 rC
232 185 :M
f2_12 sf
( )S
f0_12 sf
( )S
222 174 :M
psb
currentpoint pse
223 175 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
(=) t
80 83 /Times-Italic 0 0 0 100 T
(T) t
146 98 /Times-Italic 0 0 0 58 T
(v) t
172 83 /Times-Roman 0 0 0 100 T
(\() t
205 83 /Times-Roman 0 0 0 100 T
(node) t
397 83 /Times-Roman 0 0 0 100 T
(.) t
422 83 /Times-Roman 0 0 0 100 T
(shape) t
671 83 /Times-Roman 0 0 0 100 T
(==) t
807 83 /Times-Roman 0 0 0 100 T
(`) t
840 83 /Times-Roman 0 0 0 100 T
(square) t
1098 83 /Times-Roman 0 0 0 100 T
(') t
1131 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 222 189 140 16 rC
232 200 :M
f2_12 sf
( )S
f0_12 sf
( )S
222 189 :M
psb
currentpoint pse
223 190 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
(=) t
80 83 /Times-Italic 0 0 0 100 T
(T) t
146 98 /Times-Italic 0 0 0 58 T
(v) t
172 83 /Times-Roman 0 0 0 100 T
(\() t
205 83 /Times-Roman 0 0 0 100 T
(blob) t
381 83 /Times-Roman 0 0 0 100 T
(.) t
406 83 /Times-Roman 0 0 0 100 T
(label) t
598 83 /Times-Roman 0 0 0 100 T
(2\261) t
698 83 /Times-Roman 0 0 0 100 T
(text) t
871 83 /Times-Roman 0 0 0 100 T
(==) t
1007 83 /Times-Roman 0 0 0 100 T
(`) t
1040 83 /Times-Roman 0 0 0 100 T
(P) t
1095 83 /Times-Roman 0 0 0 100 T
(') t
1128 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 222 204 169 16 rC
232 215 :M
f0_12 sf
( )S
222 204 :M
psb
currentpoint pse
223 205 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
(=) t
80 83 /Times-Roman 0 0 0 100 T
(\() t
113 83 /Times-Roman 0 0 0 100 T
(entity) t
338 83 /Times-Roman 0 0 0 100 T
(\261) t
388 83 /Times-Roman 0 0 0 100 T
(class) t
580 83 /Times-Roman 0 0 0 100 T
(.) t
605 83 /Times-Roman 0 0 0 100 T
(kind) t
805 83 /Times-Roman 0 0 0 100 T
(==) t
941 83 /Times-Roman 0 0 0 100 T
(`) t
974 83 /Times-Roman 0 0 0 100 T
(primitive) t
1337 83 /Times-Roman 0 0 0 100 T
('\)) t
pse
psb
pse
gR
gS 0 38 552 675 rC
60 245 :M
f0_10 sf
.465 .047(includes values from different concepts \(e.g. )J
f2_10 sf
.118(node.color)A
f0_10 sf
.309 .031( versus )J
322 245 :M
f2_10 sf
.111(blob.label2-text)A
f0_10 sf
.414 .041(\), paralleling the choice at the)J
60 260 :M
2.181 .218(concept level, and different values for different attributes of the same concept \(e.g. )J
f2_10 sf
.612(node.color)A
f0_10 sf
1.851 .185( and)J
60 275 :M
f2_10 sf
-.01(node.shape)A
f0_10 sf
-.008(\), indicating values for redundant attributes.)A
78 290 :M
(Figure 4.2 gives an example schema and)S
.358 .036( a visual schema that could be produced by applying the induced)J
60 305 :M
(mapping of the example metaphor in Section 4.3.3. \(Due to limitations of the)S
.136 .014( printing medium, color attributes)J
60 320 :M
-.002(cannot be displayed directly; instead they are indicated by the name of the color along the line of the edge.\))A
.5 G
80 338 410 170 rC
-70 219 -1 1 -68 219 1 -70 218 @a
-70 219 -1 1 -68 219 1 -70 218 @a
85 383 :M
0 G
f5_8 sf
-.038(entity-class1 \("Name", primitive\))A
85 392 :M
-.068(entity-class2 \("Age", primitive\))A
85 401 :M
-.046(entity-class3 \("Salary", primitive\))A
85 410 :M
-.146(entity-class4 \("Person", compound\))A
85 419 :M
-.106(relationship1 \("Children", M:N, entity-class4, entity-class4\))A
85 428 :M
-.117(relationship2 \("Has Name", 1:N, entity-class4, entity-class1\))A
85 437 :M
-.133(relationship2 \("Has Age", 1:N, entity-class4,entity-class2\))A
85 446 :M
-.119(relationship2 \("Has Salary", 1:N, entity-class4, entity-class3\))A
.5 G
455 358 :M
0 G
-.111(Name)A
.5 G
0 G
.25 lw
445.5 338.5 39 34 rS
459 403 :M
-.615(Age)A
.5 G
0 G
445.5 383.5 39 34 rS
453 448 :M
-.134(Salary)A
.5 G
0 G
445.5 428.5 39 34 rS
348 403 :M
-.268(Person)A
.5 G
0 G
340.5 383.5 39 34 rS
1 G
395 368 45 18 rF
395 369 :M
0 G
f5_7 sf
.556 .056(Has Name)J
.5 G
396 402 :M
0 G
.47 .047(Has )J
397 410 :M
.274(Age)A
.5 G
405 437 :M
0 G
.47 .047(Has )J
402 445 :M
.233(Salary)A
.5 G
347 457 :M
0 G
.135(Children)A
.5 G
0 G
365 418.25 -.25 .25 390.25 458 .25 365 418 @a
330 458.25 -.25 .25 342.25 458 .25 330 458 @a
380 458.25 -.25 .25 391.25 458 .25 380 458 @a
131 490 :M
f5_9 sf
-.057(A DDL Representation of the )A
162 501 :M
-.051(Data Schema)A
.5 G
357 490 :M
0 G
-.051(A Visual Model Representation )A
381 501 :M
-.031(of the Data Schema)A
.5 G
0 G
-.25 -.25 380.25 384.25 .25 .25 405 373 @b
380 403.25 -.25 .25 395.25 403 .25 380 403 @a
380 418.25 -.25 .25 400.25 428 .25 380 418 @a
415 403.25 -.25 .25 445.25 403 .25 415 403 @a
-.25 -.25 425.25 363.25 .25 .25 445 353 @b
425 443.25 -.25 .25 445.25 453 .25 425 443 @a
-.25 -.25 330.25 458.25 .25 .25 355 418 @b
418 410 :M
f5_7 sf
.104(\(Yellow\))A
.5 G
316 442 :M
0 G
.205(\(Black\))A
.5 G
415 357 :M
0 G
.104(\(Yellow\))A
.5 G
415 457 :M
0 G
.104(\(Yellow\))A
.5 G
gR
gS 0 38 552 675 rC
172 532 :M
f0_10 sf
-.006(Figure 4.2. Example of a metaphor applied to a schema.)A
60 574 :M
f1_14 sf
-.004(4.4 Judging Metaphors: The Good, the Bad, and the Ugly)A
78 604 :M
f0_10 sf
-.003(Given a framework for creating visual metaphors, it is necessary to examine issues of metaphor correctness.)A
60 619 :M
-.014(We thus develop criteria that are useful in ensuring that a)A
289 619 :M
.547 .055( metaphor accurately presents information. There are)J
60 634 :M
.606 .061(issues beyond correctness, however, that affect how well metaphors visualize information. We discuss these)J
60 649 :M
-.048(issues of metaphor )A
f2_10 sf
-.055(quality)A
165 649 :M
f0_10 sf
-.015( and their impact on visualization as well.)A
60 679 :M
f1_12 sf
-.024(4.4.1 Metaphor Correctness)A
78 709 :M
f0_10 sf
-.014(We have already discussed the requirements for the relation )A
320 698 8 15 rC
330 709 :M
f2_12 sf
( )S
320 698 :M
psb
currentpoint pse
321 699 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 38 552 675 rC
328 709 :M
f0_10 sf
( in)S
.556 .056( order for it to be a valid metaphor based)J
endp
%%Page: 12 12
%%BeginPageSetup
initializepage
(; page: 12 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(35)S
gR
gS 0 45 552 661 rC
60 57 :M
f0_10 sf
-.01(on the desired operational goals, retrieval and/or update. In addition, there)A
359 57 :M
.641 .064( are three other issues that affect the)J
60 72 :M
.221 .022(correctness of a metaphor. All three require some consistency between the metaphor and the visual model, the)J
60 87 :M
-.011(first in terms of allowed attribute values, and the second two in terms of constraints.)A
78 102 :M
.546 .055(First, consider attributes whose values are concept instances, e.g., the )J
368 102 :M
f2_10 sf
.07(from-class)A
f0_10 sf
.185 .018( attribute of )J
f2_10 sf
.073(relationship)A
60 117 :M
f0_10 sf
.551 .055(in Section 4.3.3. It is necessary that the type of such a concept instance-valued visual attribute be consistent)J
60 132 :M
-.024(with the metaphor and with the)A
185 132 :M
.62 .062( type of the data model attribute to which it is mapped. Continuing the above)J
60 147 :M
.266 .027(example, the attribute)J
149 147 :M
.109 .011( )J
f2_10 sf
.194(relationship.from-class)A
f0_10 sf
.56 .056( takes values of type )J
f2_10 sf
.198(entity-class)A
386 147 :M
f0_10 sf
.752 .075(. The concept )J
f2_10 sf
.29(entity-class)A
499 147 :M
f0_10 sf
1.527 .153( is)J
60 162 :M
.573 .057(mapped to by more than one visual concept, specifically )J
297 162 :M
f2_10 sf
.03(node)A
f0_10 sf
.047 .005( and )J
f2_10 sf
.036(blob)A
355 162 :M
f0_10 sf
.81 .081(. As a result, it is necessary that the)J
60 177 :M
.435 .044(visual attribute )J
f2_10 sf
.117(edge.from-node)A
f0_10 sf
.31 .031(, which maps to )J
257 177 :M
f2_10 sf
.098(relationship.from-class)A
f0_10 sf
.38 .038(, accept as values concept instances of)J
60 192 :M
-.121(types )A
84 192 :M
f2_10 sf
-.142(node)A
f0_10 sf
-.114( and )A
f2_10 sf
-.173(blob)A
140 192 :M
f0_10 sf
-.045(. Specifically, if )A
209 179 78 19 rC
219 190 :M
f3_12 sf
-.29( )A
f2_12 sf
-.29( )A
f0_7 sf
( )S
227 190 :M
f4_14 sf
( )S
209 179 :M
psb
currentpoint pse
210 180 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
86 121 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
89 49 /Times-Roman 0 0 0 58 T
(*) t
138 96 /Times-Roman 0 0 0 100 T
(\() t
171 96 /Times-Italic 0 0 0 100 T
(P) t
231 96 /Times-Roman 0 0 0 100 T
(.) t
259 96 /Times-Italic 0 0 0 100 T
(A) t
319 96 /Times-Roman 0 0 0 100 T
(\)) t
376 96 /Times-Roman 0 0 0 100 T
(=) t
456 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(I) t
500 96 /Times-Roman 0 0 0 100 T
(\() t
533 96 /Times-Italic 0 0 0 100 T
(P) t
593 96 /Symbol 0 0 0 100 T
(\242) t
617 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 45 552 661 rC
287 192 :M
f0_10 sf
-.029( for some )A
327 179 39 19 rC
337 190 :M
f4_12 sf
( )S
340 190 :M
f3_12 sf
( )S
f2_12 sf
( )S
327 179 :M
psb
currentpoint pse
328 180 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(P) t
60 96 /Symbol 0 0 0 100 T
(\242) t
108 96 /Symbol 0 0 0 100 T
(\316) t
201 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
271 125 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 45 552 661 rC
366 192 :M
f0_10 sf
-.017( then the following should hold: )A
78 209 147 19 rC
88 220 :M
f3_7 sf
( )S
90 220 :M
f5_12 sf
-.447( )A
f2_12 sf
-.402( )A
f0_7 sf
( )S
98 220 :M
f4_14 sf
( )S
78 209 :M
psb
currentpoint pse
79 210 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
86 120 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
89 50 /Times-Roman 0 0 0 58 T
(*) t
132 96 /Times-Roman 0 0 0 100 T
(\() t
165 96 /Times-Italic 0 0 0 100 T
(T) t
235 53 /Times-Roman 0 0 0 58 T
(\2611) t
293 96 /Times-Italic 0 0 0 100 T
(P) t
353 96 /Times-Roman 0 0 0 100 T
(.) t
381 96 /Times-Italic 0 0 0 100 T
(A) t
441 96 /Times-Roman 0 0 0 100 T
(\)\)) t
531 96 /Times-Roman 0 0 0 100 T
(=) t
611 96 /Helvetica 0 0 0 100 T
(U) t
685 113 /Times-Italic 0 0 0 58 T
(P) t
720 113 /Symbol 0 0 0 58 T
(\242\242) t
763 113 /Symbol 0 0 0 58 T
(\316) t
818 113 /Times-Italic 0 0 0 58 T
(T) t
862 91 /Times-Roman 0 0 0 50 T
(\2611) t
911 113 /Times-Roman 0 0 0 58 T
(\() t
930 113 /Times-Italic 0 0 0 58 T
(P) t
965 113 /Symbol 0 0 0 58 T
(\242) t
979 113 /Times-Roman 0 0 0 58 T
(\)) t
998 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(I) t
1042 96 /Times-Roman 0 0 0 100 T
(\() t
1075 96 /Times-Italic 0 0 0 100 T
(P) t
1135 96 /Symbol 0 0 0 100 T
(\242\242) t
1184 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 45 552 661 rC
60 252 :M
f0_10 sf
-.006(For example, the metaphor of Section 4.3.3 satisfies the above since)A
78 269 162 19 rC
88 280 :M
f2_12 sf
-.474( )A
f0_7 sf
( )S
93 280 :M
f4_14 sf
( )S
78 269 :M
psb
currentpoint pse
79 270 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
86 120 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
89 50 /Times-Roman 0 0 0 58 T
(*) t
132 96 /Times-Roman 0 0 0 100 T
(\() t
165 96 /Times-Italic 0 0 0 100 T
(T) t
235 53 /Times-Roman 0 0 0 58 T
(\2611) t
293 96 /Times-Roman 0 0 0 100 T
(\() t
326 96 /Times-Italic 0 0 0 100 T
(relationship) t
805 96 /Times-Roman 0 0 0 100 T
(.) t
844 96 /Times-Italic 0 0 0 100 T
(from) t
1031 96 /Times-Roman 0 0 0 100 T
(\261) t
1081 96 /Times-Italic 0 0 0 100 T
(class) t
1279 96 /Times-Roman 0 0 0 100 T
(\)\)) t
pse
psb
pse
gR
gS 249 271 94 16 rC
259 282 :M
f3_12 sf
-.222( )A
f2_12 sf
-.222( )A
f4_12 sf
( )S
268 282 :M
f0_12 sf
( )S
249 271 :M
psb
currentpoint pse
250 272 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Roman 0 0 0 100 T
(=) t
80 83 /ZapfChancery-MediumItalic 0 0 0 100 T
(I) t
118 83 /Times-Roman 0 0 0 100 T
(\() t
151 83 /Times-Italic 0 0 0 100 T
(node) t
343 83 /Times-Roman 0 0 0 100 T
(\)) t
400 83 /Symbol 0 0 0 100 T
(\310) t
500 83 /ZapfChancery-MediumItalic 0 0 0 100 T
(I) t
538 83 /Times-Roman 0 0 0 100 T
(\() t
571 83 /Times-Italic 0 0 0 100 T
(blob) t
747 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 249 284 81 19 rC
259 295 :M
f4_14 sf
-.529( )A
f3_7 sf
( )S
264 295 :M
f2_7 sf
( )S
266 295 :M
f5_12 sf
-.176( )A
f0_12 sf
( )S
249 284 :M
psb
currentpoint pse
250 285 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Roman 0 0 0 100 T
(=) t
80 96 /Helvetica 0 0 0 100 T
(U) t
154 120 /Times-Italic 0 0 0 58 T
(P) t
203 120 /Symbol 0 0 0 58 T
(\316) t
258 120 /Times-Italic 0 0 0 58 T
(T) t
302 98 /Times-Roman 0 0 0 50 T
(\2611) t
351 120 /Times-Roman 0 0 0 58 T
(\() t
370 120 /Times-Italic 0 0 0 58 T
(class) t
486 120 /Times-Roman 0 0 0 58 T
(\)) t
505 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(I) t
549 96 /Times-Roman 0 0 0 100 T
(\() t
582 96 /Times-Italic 0 0 0 100 T
(P) t
642 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 45 552 661 rC
60 327 :M
f0_10 sf
.666 .067(Otherwise, it would not be possible to choose arbitrary node or blob representations for )J
428 327 :M
f2_10 sf
-.049(entity-class)A
474 327 :M
f0_10 sf
.827 .083( concept)J
60 342 :M
-.017(instances.)A
78 357 :M
-.034(Second, when there)A
157 357 :M
.581 .058( is redundancy in the metaphor, i.e., )J
309 346 10 16 rC
319 357 :M
f2_12 sf
( )S
309 346 :M
psb
currentpoint pse
310 347 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 45 552 661 rC
319 357 :M
f0_10 sf
.626 .063( is not 1-1 and different attributes of the same)J
60 372 :M
-.087(concept in )A
104 359 15 19 rC
114 370 :M
f4_14 sf
( )S
104 359 :M
psb
currentpoint pse
105 360 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 45 552 661 rC
119 372 :M
f0_10 sf
-.01( are mapped to the same attribute of some concept in )A
332 359 14 19 rC
342 370 :M
f4_14 sf
( )S
332 359 :M
psb
currentpoint pse
333 360 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
pse
psb
pse
gR
gS 0 45 552 661 rC
346 372 :M
f0_10 sf
(, the values of the former)S
.091 .009( attributes must)J
60 387 :M
.586 .059(be consistent. This can be enforced with constraints in )J
292 374 14 19 rC
302 385 :M
f4_14 sf
( )S
292 374 :M
psb
currentpoint pse
293 375 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 45 552 661 rC
306 387 :M
f0_10 sf
.925 .093(. For example, in the metaphor presented in the)J
60 402 :M
.553 .055(previous section, the color and shape attributes of )J
269 402 :M
f2_10 sf
.145(node)A
f0_10 sf
.449 .045( are redundantly used to capture the)J
437 402 :M
1.08 .108( kind attribute of)J
60 417 :M
.574 .057(entity-class. For the metaphor to be correct as defined)J
287 417 :M
1.208 .121( in Section 4.3.3, the visual model must include the)J
60 432 :M
-.044(following constraints: )A
78 451 277 16 rC
89 462 :M
f0_12 sf
( )S
f2_12 sf
( )S
f3_12 sf
( )S
78 451 :M
psb
currentpoint pse
79 452 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Symbol 0 0 0 50 T
(") t
36 42 /Times-Italic 0 0 0 50 T
(n) t
73 42 /Symbol 0 0 0 50 T
(\316) t
121 42 /Times-Roman 0 0 0 50 T
(node) t
218 42 /Times-Roman 0 0 0 50 T
(,) t
279 42 /Times-Roman 0 0 0 50 T
(color) t
382 42 /Times-Roman 0 0 0 50 T
(\() t
399 42 /Times-Italic 0 0 0 50 T
(n) t
424 42 /Times-Roman 0 0 0 50 T
(\)) t
453 42 /Times-Roman 0 0 0 50 T
(=) t
493 42 /Times-Roman 0 0 0 50 T
(`) t
510 42 /Times-Roman 0 0 0 50 T
(blue) t
596 42 /Times-Roman 0 0 0 50 T
(') t
649 42 /Symbol 0 0 0 50 T
(\333) t
737 42 /Times-Roman 0 0 0 50 T
(shape) t
851 42 /Times-Roman 0 0 0 50 T
(\() t
868 42 /Times-Italic 0 0 0 50 T
(n) t
893 42 /Times-Roman 0 0 0 50 T
(\)) t
922 42 /Times-Roman 0 0 0 50 T
(=) t
962 42 /Times-Roman 0 0 0 50 T
(`) t
979 42 /Times-Roman 0 0 0 50 T
(square) t
1109 42 /Times-Roman 0 0 0 50 T
(',) t
pse
psb
pse
gR
gS 78 466 261 16 rC
89 477 :M
f0_12 sf
( )S
f2_12 sf
( )S
f3_12 sf
( )S
78 466 :M
psb
currentpoint pse
79 467 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Symbol 0 0 0 50 T
(") t
36 42 /Times-Italic 0 0 0 50 T
(n) t
73 42 /Symbol 0 0 0 50 T
(\316) t
121 42 /Times-Roman 0 0 0 50 T
(node) t
218 42 /Times-Roman 0 0 0 50 T
(,) t
279 42 /Times-Roman 0 0 0 50 T
(color) t
382 42 /Times-Roman 0 0 0 50 T
(\() t
399 42 /Times-Italic 0 0 0 50 T
(n) t
424 42 /Times-Roman 0 0 0 50 T
(\)) t
453 42 /Times-Roman 0 0 0 50 T
(=) t
493 42 /Times-Roman 0 0 0 50 T
(`) t
510 42 /Times-Roman 0 0 0 50 T
(red) t
574 42 /Times-Roman 0 0 0 50 T
(') t
627 42 /Symbol 0 0 0 50 T
(\333) t
715 42 /Times-Roman 0 0 0 50 T
(shape) t
829 42 /Times-Roman 0 0 0 50 T
(\() t
846 42 /Times-Italic 0 0 0 50 T
(n) t
871 42 /Times-Roman 0 0 0 50 T
(\)) t
900 42 /Times-Roman 0 0 0 50 T
(=) t
940 42 /Times-Roman 0 0 0 50 T
(`) t
957 42 /Times-Roman 0 0 0 50 T
(oval) t
1043 42 /Times-Roman 0 0 0 50 T
('.) t
pse
psb
pse
gR
gS 0 45 552 661 rC
60 507 :M
f0_10 sf
-.012( Allowing any other combination of shape with color would)A
300 507 :M
.509 .051( permit visual schemas with no corresponding data)J
60 522 :M
(schema. This would prevent the visual)S
.396 .04( model from being used for updates of the data schema, since it would)J
60 537 :M
.575 .058(allow conflicting values of the )J
f2_10 sf
.164(kind)A
f0_10 sf
.426 .043( attribute of the )J
274 537 :M
f2_10 sf
-.049(entity-class)A
320 537 :M
f0_10 sf
1.212 .121(. For example, a visual schema with a blue)J
60 552 :M
-.179(oval )A
80 552 :M
f2_10 sf
(node)S
f0_10 sf
-.011( would have no meaning with respect to the metaphor.)A
78 567 :M
(Third, the constraints of the visual model should be such that no valid visual schema will)S
.112 .011( map to an invalid)J
60 582 :M
-.018(data schema, and vice versa. This)A
197 582 :M
.615 .061( is ensured through a relationship between the constraints in the data model)J
60 597 :M
-.01(and those in the visual model. This relationship may be)A
284 597 :M
.63 .063( very complex, since one may perform inferences on a)J
60 612 :M
-.01(given set of constraints to derive additional constraints that are not explicitly specified. For the)A
441 612 :M
.474 .047( purposes of this)J
60 627 :M
1.724 .172(thesis, we take a simple approach and consider only some straightforward sufficient conditions for the)J
60 642 :M
(consistency of constraints between the two)S
.289 .029( models. Specifically, for two constraints )J
407 631 6 16 rC
417 642 :M
f2_12 sf
( )S
407 631 :M
psb
currentpoint pse
408 632 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(c) t
pse
psb
pse
gR
gS 0 45 552 661 rC
413 642 :M
f0_10 sf
.651 .065( and )J
434 631 9 16 rC
444 642 :M
f3_12 sf
( )S
f2_12 sf
( )S
434 631 :M
psb
currentpoint pse
435 632 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(c) t
44 83 /Symbol 0 0 0 100 T
(\242) t
pse
psb
pse
gR
gS 0 45 552 661 rC
443 642 :M
f0_10 sf
.909 .091(, )J
449 631 6 16 rC
459 642 :M
f2_12 sf
( )S
449 631 :M
psb
currentpoint pse
450 632 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(c) t
pse
psb
pse
gR
gS 0 45 552 661 rC
455 642 :M
f0_10 sf
.5 .05( )J
459 642 :M
f2_10 sf
.021(subsumes)A
f0_10 sf
( )S
501 631 9 16 rC
511 642 :M
f3_12 sf
( )S
f2_12 sf
( )S
501 631 :M
psb
currentpoint pse
502 632 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(c) t
44 83 /Symbol 0 0 0 100 T
(\242) t
pse
psb
pse
gR
gS 0 45 552 661 rC
60 657 :M
f0_10 sf
-.007(if the set of schemas that satisfy )A
190 646 6 16 rC
200 657 :M
f2_12 sf
( )S
190 646 :M
psb
currentpoint pse
191 647 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(c) t
pse
psb
pse
gR
gS 0 45 552 661 rC
196 657 :M
f0_10 sf
-.023( is a subset of the set of)A
290 657 :M
.497 .05( schemas that satisfy )J
379 646 9 16 rC
389 657 :M
f3_12 sf
( )S
f2_12 sf
( )S
379 646 :M
psb
currentpoint pse
380 647 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(c) t
44 83 /Symbol 0 0 0 100 T
(\242) t
pse
psb
pse
gR
gS 0 45 552 661 rC
388 657 :M
f0_10 sf
.65 .065(. Consider the subset )J
481 644 17 19 rC
491 655 :M
f3_12 sf
( )S
f4_14 sf
( )S
481 644 :M
psb
currentpoint pse
482 645 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
112 96 /Symbol 0 0 0 100 T
(\242) t
pse
psb
pse
gR
gS 0 45 552 661 rC
498 657 :M
f0_10 sf
.144 .014( of)J
60 672 :M
-.045(the constraints in )A
131 659 14 19 rC
141 670 :M
f4_14 sf
( )S
131 659 :M
psb
currentpoint pse
132 660 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 45 552 661 rC
145 672 :M
f0_10 sf
-.01( that are mapped by the metaphor )A
281 661 8 16 rC
291 672 :M
f2_12 sf
( )S
281 661 :M
psb
currentpoint pse
282 662 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 45 552 661 rC
289 672 :M
f0_10 sf
-.02(. \(Note that no composition constraint is)A
450 672 :M
.613 .061( among them.\))J
60 687 :M
-.004(If the visual model will be used for retrieval only, then the following should hold: )A
endp
%%Page: 13 13
%%BeginPageSetup
initializepage
(; page: 13 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(36)S
gR
gS 78 38 184 18 rC
88 48 :M
f4_14 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
f3_12 sf
( )S
78 37 :M
psb
currentpoint pse
79 38 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Symbol 0 0 0 100 T
(") t
71 96 /Times-Italic 0 0 0 100 T
(c) t
115 96 /Symbol 0 0 0 100 T
(\242) t
163 96 /Symbol 0 0 0 100 T
(\316) t
258 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
324 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
376 96 /Symbol 0 0 0 100 T
(\242) t
400 96 /Times-Roman 0 0 0 100 T
(,) t
449 96 /Symbol 0 0 0 100 T
($) t
503 96 /Times-Italic 0 0 0 100 T
(c) t
571 96 /Symbol 0 0 0 100 T
(\316) t
666 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
732 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
784 96 /Times-Roman 0 0 0 100 T
(,) t
857 96 /Times-Italic 0 0 0 100 T
(c) t
925 96 /Times-Roman 0 0 0 100 T
(subsumes) t
1334 96 /Times-Italic 0 0 0 100 T
(T) t
1397 96 /Times-Roman 0 0 0 100 T
(\() t
1430 96 /Times-Italic 0 0 0 100 T
(c) t
1474 96 /Symbol 0 0 0 100 T
(\242) t
1498 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 38 552 676 rC
60 80 :M
f0_10 sf
.169 .017(This is sufficient to ensure that all data schemas have a corresponding visual schema. On the other hand, if the)J
60 95 :M
-.006(visual model will be used for updates as well, then the following should hold:)A
78 112 102 19 rC
88 123 :M
f3_12 sf
( )S
f2_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
78 112 :M
psb
currentpoint pse
79 113 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(D) t
142 96 /Times-Roman 0 0 0 100 T
(=) t
252 96 /Times-Italic 0 0 0 100 T
(T) t
315 96 /Times-Roman 0 0 0 100 T
(\() t
348 96 /Times-Italic 0 0 0 100 T
(c) t
392 96 /Times-Roman 0 0 0 100 T
(\)) t
449 96 /Times-Roman 0 0 0 100 T
(|) t
493 96 /Times-Italic 0 0 0 100 T
(c) t
561 96 /Symbol 0 0 0 100 T
(\316) t
656 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
722 124 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
768 96 /Symbol 0 0 0 100 T
(\242) t
/H {newpath moveto 2 copy curveto 2 copy curveto fill} bind def
221 13 221 45 228 13 244 13 228 45 H
228 77 228 45 221 77 205 77 221 45 H
228 77 228 109 221 77 205 77 221 109 H
221 141 221 109 228 141 244 141 228 109 H
823 13 823 45 816 13 800 13 816 45 H
816 77 816 45 823 77 839 77 823 45 H
816 77 816 109 823 77 839 77 823 109 H
823 141 823 109 816 141 800 141 816 109 H
pse
psb
pse
gR
gS 0 38 552 676 rC
60 155 :M
f0_10 sf
-.007(This is sufficient to additionally ensure that all visual schemas have a corresponding data schema. Note)A
476 155 :M
.639 .064( that the)J
60 170 :M
1.144 .114(visual model may have additional constraints, those in )J
296 157 14 19 rC
306 168 :M
f4_14 sf
( )S
296 157 :M
psb
currentpoint pse
297 158 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 38 552 676 rC
310 170 :M
f0_10 sf
1.818 .182( \320 )J
324 157 17 19 rC
334 168 :M
f3_12 sf
( )S
f4_14 sf
( )S
324 157 :M
psb
currentpoint pse
325 158 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
112 96 /Symbol 0 0 0 100 T
(\242) t
pse
psb
pse
gR
gS 0 38 552 676 rC
341 170 :M
f0_10 sf
(,)S
344 170 :M
1.697 .17( e.g., composition constraints or other)J
60 185 :M
-.001(constraints that are enforced for presentation purposes.)A
60 215 :M
f1_12 sf
-.047(4.4.2 Metaphor Quality)A
78 245 :M
f0_10 sf
-.018(A metaphor may be correct and nonetheless present)A
285 245 :M
.603 .06( information poorly. For example, it is conceivable to)J
60 260 :M
-.026(have a correct metaphor where )A
186 249 10 16 rC
196 260 :M
f2_12 sf
( )S
186 249 :M
psb
currentpoint pse
187 250 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 38 552 676 rC
196 260 :M
f0_10 sf
-.005( is not a function. Such a )A
300 249 10 16 rC
310 260 :M
f2_12 sf
( )S
300 249 :M
psb
currentpoint pse
301 250 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 38 552 676 rC
310 260 :M
f0_10 sf
-.005( would map the same visual attribute to more than)A
60 275 :M
.636 .064(one data attribute, so that each value of the former corresponds to a combination of values of the latter. We)J
60 290 :M
-.017(have decided, however, that this introduces a level)A
262 290 :M
.564 .056( of visual complexity that is often uncomfortable and would)J
60 305 :M
-.032(result in confusing visual)A
161 305 :M
.613 .061( schemas in many cases. For example, consider the )J
380 305 :M
f2_10 sf
.107(relationship)A
f0_10 sf
.354 .035( concept of the data)J
60 320 :M
-.019(model in Section 4.2.4, enhanced with a )A
223 320 :M
f2_10 sf
-.084(kind)A
f0_10 sf
-.078( attribute)A
276 320 :M
.529 .053( taking values \324part-of\325 and \324association\325. Following the)J
60 335 :M
2.767 .277(metaphor of Section 4.3.3, consider mapping the)J
285 335 :M
.497 .05( )J
f2_10 sf
.928(edge.color)A
f0_10 sf
3.194 .319( attribute to the combination of the)J
60 350 :M
f2_10 sf
.147(relationship.kind)A
f0_10 sf
.285 .029( and )J
f2_10 sf
.153(relationship.card-ratio)A
247 350 :M
f0_10 sf
2.578 .258( attributes. Each of eight colors would map to)J
468 350 :M
3.461 .346( a given)J
60 365 :M
-.008(combination of kind and ratio, e.g., )A
203 354 8 16 rC
213 365 :M
f2_12 sf
( )S
203 354 :M
psb
currentpoint pse
204 355 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
pse
psb
pse
gR
gS 0 38 552 676 rC
211 365 :M
f0_10 sf
-.004(\(\324orange\325\) = \(\324part-of\325, \324M:N\325\). Such a )A
370 354 10 16 rC
380 365 :M
f2_12 sf
( )S
370 354 :M
psb
currentpoint pse
371 355 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 38 552 676 rC
380 365 :M
f0_10 sf
( relation is not)S
.102 .01( strictly incorrect,)J
60 380 :M
(i.e., a well defined mapping between visual and)S
.3 .03( data schemas can still be derived with the desirable properties)J
60 395 :M
-.022(with respect to information)A
169 395 :M
.62 .062( capacity. We believe, however, that such a metaphor would be more difficult for)J
60 410 :M
-.007(most users to remember than one where two separate visual attributes are mapped to the two data attributes. We)A
60 425 :M
-.033(thus disallow non-functional )A
177 414 10 16 rC
187 425 :M
f2_12 sf
( )S
177 414 :M
psb
currentpoint pse
178 415 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 38 552 676 rC
187 425 :M
f0_10 sf
-.358(\325s.)A
78 440 :M
(Beyond functionality of )S
176 429 10 16 rC
186 440 :M
f2_12 sf
( )S
176 429 :M
psb
currentpoint pse
177 430 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 38 552 676 rC
186 440 :M
f0_10 sf
(,)S
189 440 :M
.385 .038( other characteristics of )J
f2_10 sf
.725 .072(metaphor quality)J
359 440 :M
f0_10 sf
.464 .046( also affect information presentation.)J
60 455 :M
(We discuss three such traits)S
.282 .028( that greatly affect metaphors: )J
f2_10 sf
.508 .051(information hiding)J
f0_10 sf
.356 .036(, which occurs when information)J
60 470 :M
-.023(is captured by the visual model)A
185 470 :M
.42 .042( but is not visible to the user, )J
f2_10 sf
1.028 .103(visual ambiguity)J
f0_10 sf
.747 .075(, which happens when instances)J
60 485 :M
-.031(of different visual concepts or)A
180 485 :M
.519 .052( different values of the same attribute appear identical to the user, and )J
f2_10 sf
.191(semantic)A
60 500 :M
-.124(ambiguity)A
100 500 :M
f0_10 sf
(, which exists when visual attribute values do not suggest)S
.249 .025( the data attribute values they capture. The)J
60 515 :M
-.036(first two issues are)A
135 515 :M
.62 .062( concerned with the visual model alone, while the third regards the metaphor itself. There)J
60 530 :M
.506 .051(exist other issues of metaphor quality beyond those mentioned above, including intuitiveness, versatility,)J
492 530 :M
.816 .082( and)J
60 545 :M
-.005(emphasis. These are more difficult to quantify so they are beyond the scope of this thesis.)A
78 560 :M
.966 .097(In general, there are no universal rules about good user interfaces. Nevertheless, we believe there are)J
60 575 :M
.554 .055(certain desirable and undesirable characteristics of user interfaces in the context of our own)J
439 575 :M
1.372 .137( work. We thus)J
60 590 :M
(conclude the discussion of each of the metaphor quality traits)S
.23 .023( above with comments on the trait\325s implications,)J
60 605 :M
-.011(and whether we believe these implications to be good or bad.)A
60 635 :M
f0_12 sf
-.025(4.4.2.1 Hidden Information)A
78 665 :M
f0_10 sf
.037 .004(Not all information captured by a visual model is visible to the user. This hidden information falls into two)J
60 680 :M
.928 .093(categories: transient and structural. Transient hidden information is not visible to the user but can become)J
60 695 :M
.524 .052(visible through some manipulation of the visual schema)J
291 695 :M
1.137 .114( that leaves the underlying data schema unchanged.)J
60 710 :M
-.021(Consider the visual model described in)A
216 710 :M
.515 .051( Section 4.2.4 and the metaphor from Section 4.3.3. The )J
f2_10 sf
.182(node)A
f0_10 sf
.74 .074( concept)J
endp
%%Page: 14 14
%%BeginPageSetup
initializepage
(; page: 14 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(37)S
gR
gS 0 42 552 668 rC
60 54 :M
f0_10 sf
.25 .025(instances have locations that may be anywhere on the plane, thus it is possible for two )J
414 54 :M
f2_10 sf
.164(nodes)A
f0_10 sf
.435 .044( to have the same)J
60 69 :M
.102 .01(location. The convention for such cases in a 2-D display system is to make one of the )J
410 69 :M
f2_10 sf
.1(nodes)A
f0_10 sf
.322 .032( invisible or partly)J
60 84 :M
.083 .008(visible, conceptually)J
144 84 :M
1.211 .121( \322behind\323 the other )J
231 84 :M
f2_10 sf
.542(node)A
f0_10 sf
.791 .079(. The )J
282 84 :M
f2_10 sf
.333(node)A
f0_10 sf
1.026 .103( that is behind captures information, yet the user)J
60 99 :M
.095 .009(cannot see it. If the front )J
f2_10 sf
.044(node)A
f0_10 sf
.134 .013( is moved, an operation that does not affect the underlying data schema, the back)J
60 114 :M
f2_10 sf
.103(node)A
f0_10 sf
.325 .032( becomes visible. Figure 4.3 demonstrates how one concept instance can be partially or totally hidden by)J
60 129 :M
-.069(another.)A
.5 G
100 144 369 98 rC
-35 50 -1 1 -33 50 1 -35 49 @a
-35 50 -1 1 -33 50 1 -35 49 @a
107 159 :M
0 G
f5_7 sf
.095(Node1)A
.5 G
0 G
.25 lw
100.5 144.5 34 29 rS
162 189 :M
.095(Node2)A
.5 G
0 G
155.5 174.5 34 29 rS
272 179 :M
.095(Node2)A
.5 G
0 G
265.5 164.5 34 29 rS
1 G
260 154 35 30 rF
0 G
260.5 154.5 34 29 rS
267 169 :M
.095(Node1)A
.5 G
412 174 :M
0 G
.095(Node2)A
.5 G
0 G
405.5 159.5 34 29 rS
1 G
405 159 35 30 rF
0 G
405.5 159.5 34 29 rS
412 174 :M
.095(Node1)A
.5 G
105 222 :M
0 G
f5_9 sf
-.109(Both Node1 and )A
110 234 :M
-.043(Node2 Visible)A
.5 G
251 222 :M
0 G
-.034(Node2 Partially )A
269 234 :M
-.101(Hidden)A
.5 G
388 222 :M
0 G
-.094(Node2 Completely )A
411 234 :M
-.101(Hidden)A
.5 G
gR
gS 0 42 552 668 rC
171 266 :M
f0_10 sf
-.016(Figure 4.3. An example of transient hidden information.)A
78 296 :M
-.07(This example of)A
143 296 :M
.589 .059( hidden information depends on the fact that the location attribute is )J
429 296 :M
f2_10 sf
-.181(free)A
445 296 :M
f0_10 sf
.649 .065(, not part of the)J
60 311 :M
.262 .026(metaphor. Freedom of other attributes can also result in transient hidden information. For example, if the size)J
60 326 :M
-.192(of a )A
78 326 :M
f2_10 sf
-.068(node)A
f0_10 sf
-.056( were free, the )A
157 326 :M
f2_10 sf
-.024(node)A
f0_10 sf
-.019( could be hidden by setting its size to zero.)A
78 341 :M
.542 .054(Structural hidden information is information that a visual model captures but does not display. Consider)J
60 356 :M
.987 .099(the )J
77 356 :M
f2_10 sf
-.292(edge)A
96 356 :M
f0_10 sf
1.483 .148( concept from the visual model in Section 4.3.1 and the metaphor in Section 4.3.3. It has two)J
60 371 :M
.261 .026(attributes, )J
f2_10 sf
.071(from-node)A
146 371 :M
f0_10 sf
.469 .047( and )J
f2_10 sf
.307(to-node)A
200 371 :M
f0_10 sf
1.843 .184(, which are not directly shown. Their values are made visible by the)J
60 386 :M
-.018(constraints that define the location of the )A
226 386 :M
f2_10 sf
-.292(edge)A
245 386 :M
f0_10 sf
.423 .042(. Consider the result of removing this constraint from the visual)J
60 401 :M
.454 .045(model. The location of )J
f2_10 sf
.199(edges)A
184 401 :M
f0_10 sf
.973 .097( would no longer be constrained; an )J
341 401 :M
f2_10 sf
-.292(edge)A
360 401 :M
f0_10 sf
1.214 .121( line could appear anywhere in the)J
60 416 :M
.871 .087(visual schema with no relation to the )J
220 416 :M
f2_10 sf
.375(nodes)A
f0_10 sf
.923 .092( specified by its )J
317 416 :M
f2_10 sf
-.082(from-node)A
359 416 :M
f0_10 sf
.469 .047( and )J
f2_10 sf
.307(to-node)A
413 416 :M
f0_10 sf
1.248 .125( attributes. The visual)J
60 431 :M
-.019(model would still be valid with respect to)A
226 431 :M
.658 .066( the data model and metaphor, but it would not be functional for the)J
60 446 :M
-.026(user. The visual model)A
154 446 :M
.576 .058( would still capture the same information, but this information would not be visible to)J
60 461 :M
.521 .052(the user. Figure 4.4 demonstrates the)J
216 461 :M
1.221 .122( appearance of a visual schema with and without the constraints that)J
60 476 :M
.223 .022(determine )J
f2_10 sf
.066(edge)A
123 476 :M
f0_10 sf
1.147 .115( location. The same metaphor contains another example)J
365 476 :M
1.643 .164( of structural hidden information.)J
60 491 :M
f2_10 sf
-.018(Edges)A
f0_10 sf
-.018( are)A
100 491 :M
1.24 .124( not directed, and as a result it is not possible to distinguish the )J
f2_10 sf
.445(edge\325s)A
f0_10 sf
.256 .026( )J
412 491 :M
f2_10 sf
-.082(from-node)A
454 491 :M
f0_10 sf
1.118 .112( from the )J
f2_10 sf
.635(to-)A
60 506 :M
-.087(node)A
f0_10 sf
-.09(. )A
.5 G
110 521 349 116 rC
-35 447 -1 1 -33 447 1 -35 446 @a
-35 447 -1 1 -33 447 1 -35 446 @a
0 G
-.25 -.25 125.25 606.25 .25 .25 150 536 @b
150 536.25 -.25 .25 210.25 586 .25 150 536 @a
1 G
130 521 35 30 rF
0 G
.25 lw
130.5 521.5 34 29 rS
1 G
195 571 35 30 rF
0 G
195.5 571.5 34 29 rS
1 G
110 596 35 30 rF
0 G
110.5 596.5 34 29 rS
347 536 :M
f5_7 sf
.095(Node1)A
.5 G
0 G
340.5 521.5 34 29 rS
412 586 :M
.095(Node2)A
.5 G
0 G
405.5 571.5 34 29 rS
327 611 :M
.095(Node3)A
.5 G
0 G
320.5 596.5 34 29 rS
410 531.25 -.25 .25 455.25 546 .25 410 531 @a
375 626.25 -.25 .25 435.25 636 .25 375 626 @a
117 570 :M
.136(edge1)A
.5 G
183 561 :M
0 G
.136(edge2)A
.5 G
398 626 :M
0 G
.136(edge1)A
.5 G
433 536 :M
0 G
.136(edge2)A
.5 G
137 536 :M
0 G
.095(Node1)A
.5 G
202 586 :M
0 G
.095(Node2)A
.5 G
117 611 :M
0 G
.095(Node3)A
.5 G
gR
gS 0 42 552 668 rC
170 661 :M
f0_10 sf
-.004(Figure 4.4. An example of structural hidden information.)A
60 691 :M
1.368 .137(Structural hidden information can occur whenever the appearance of one attribute is affected by another)J
60 706 :M
-.027(attribute or constraint. In the above)A
203 706 :M
.294 .029( example, the )J
f2_10 sf
.12(from-node)A
304 706 :M
f0_10 sf
.59 .059( attribute is made visible through a constraint that)J
endp
%%Page: 15 15
%%BeginPageSetup
initializepage
(; page: 15 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(38)S
gR
gS 0 47 552 658 rC
60 59 :M
f0_10 sf
-.017(links it to another attribute, )A
f2_10 sf
-.022(source-location)A
234 59 :M
f0_10 sf
(.)S
78 74 :M
1.642 .164(We believe that structural hidden information should usually be avoided,)J
397 74 :M
2.056 .206( whereas transient hidden)J
60 89 :M
.131 .013(information need not be. In many cases, a model that )J
280 89 :M
f2_10 sf
.148(cannot)A
f0_10 sf
.488 .049( visually display all the information it captures is)J
60 104 :M
.639 .064(undesirable. Temporarily invisible information, however, is not a problem as the hidden information can be)J
60 119 :M
-.006(made visible when necessary. In fact, transient hidden information can be a very useful tool for reducing)A
481 119 :M
.565 .056( clutter)J
60 134 :M
-.009(in a visual schema by hiding infrequently needed information.)A
60 164 :M
f0_12 sf
-.014(4.4.2.3 Visual Ambiguity)A
78 194 :M
f0_10 sf
1.191 .119(Visual ambiguity occurs when a visual model contains two distinct concepts \(members of )J
465 181 13 19 rC
475 192 :M
f4_14 sf
( )S
465 181 :M
psb
currentpoint pse
466 182 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 47 552 658 rC
478 194 :M
f0_10 sf
1.413 .141( or two)J
60 209 :M
.921 .092(distinct values for the same attribute \(members of )J
274 196 15 19 rC
284 207 :M
f4_14 sf
( )S
274 196 :M
psb
currentpoint pse
275 197 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
74 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 47 552 658 rC
289 209 :M
f0_10 sf
1.196 .12(\) that are visually indistinguishable. Two items are)J
60 224 :M
-.007(visually indistinguishable when a user viewing one cannot discern which of the two it is.)A
78 239 :M
-.011(Objects with identical appearance are obviously visually indistinguishable. )A
380 239 :M
.591 .059( For example, it would be legal)J
60 254 :M
1.721 .172(to define two different visual concepts with the same attributes and values, and equivalent constraints.)J
60 269 :M
(Metaphors could be correctly and unambiguously defined \(since they depend on symbolic representations of)S
( the)S
60 284 :M
-.013(concepts and their characteristics\), but users)A
237 284 :M
.572 .057( might be unable to interpret schemas correctly, since instances of)J
60 299 :M
-.021(the two visual concepts would appear the same. )A
253 299 :M
.621 .062( We refer to these cases as strict visual ambiguity. A slightly)J
60 314 :M
.714 .071(less strict form of visual ambiguity occurs in cases where attributes of two different concepts have different)J
60 329 :M
-.009(names, but the same values and constraints.)A
78 344 :M
-.01(Another kind of visual ambiguity occurs when two concepts or attribute values)A
394 344 :M
.529 .053( appear very similar, though)J
60 359 :M
(not identical. Concepts or attributes with a similar)S
.277 .028( appearance may be visually indistinguishable, depending in)J
60 374 :M
(part on the degree of similarity and the visual acuity of the viewer. For)S
.21 .021( example, if two polygons of 15 and 17)J
60 389 :M
-.087(sides are)A
95 389 :M
.646 .065( mapped to two different values of a data attribute, Figure 4.5 shows that users might not be able to)J
60 404 :M
-.008(correctly distinguish between the two values. Another example would be two)A
372 404 :M
.489 .049( concepts with different attributes)J
60 419 :M
-.014(and values but the same appearance to the user.)A
221 437 128 60 rC
-37 350 -1 1 -35 350 1 -37 349 @a
-36 350 :M
% P2-v17 - Copyright 1991 Aldus Corporation
userdict/md known{currentdict md eq md/bu known and}{false}ifelse{bu}if currentdict/P2_d known not{/P2_b{P2_d
begin}bind def/P2_d 33 dict def userdict/md known{currentdict md eq}{false}ifelse P2_b dup dup
/mk exch def{md/pat known md/sg known md/gr known and and}{false}ifelse/pk exch def{md
/setTxMode known}{false}ifelse/sk exch def mk{md/xl known}{false}ifelse/xk exch def/b{bind def}bind def/sa{matrix currentmatrix P2_tp
concat aload pop}b/sb{matrix currentmatrix exch concat P2_tp matrix invertmatrix concat aload
pop}b/se{matrix astore setmatrix}b/bb{gsave P2_tp concat newpath moveto}b/bc{curveto}b/bl
{lineto}b/bx{closepath}b/bp{gsave eofill grestore}b/bf{scale 1 setlinewidth stroke}b/be
{grestore}b/p{/gf false def}b p/g{/gf true def}b pk{/_pat/pat load def/_gr/gr load def}{/_gr
{64.0 div setgray}b}ifelse sk{/_sTM/setTxMode load def}if/gx{/tg exch def}b 0 gx/x6{mk{av 68 gt
{false}if}if}b/bps 8 string def/bpm[8 0 0 8 0 0]def/bpp{bps}def/obp{gsave setrgbcolor bps copy pop
dup 0 get 8 div floor cvi 8 mul 1 index 2 get 8 div floor cvi 8 mul 2 index 1 get 8 div floor cvi 8 mul
8 4 index 3 get 8 div floor cvi 8 mul{2 index 8 3 index{1 index gsave translate 8 8 scale 8 8 false bpm/bpp
load imagemask grestore}for pop}for pop pop pop grestore}b end P2_b pk end{/pat{P2_b gf{end pop sg
P2_b mk end{av 68 gt{pop}if}if}{/_pat load end exec}ifelse}bind def}{/pat{P2_b pop _gr end}bind
def}ifelse P2_b sk end{/setTxMode{P2_b/_sTM load end exec P2_b tg dup 0 ge{/_gr load end exec}
{pop end}ifelse}bind def}{/setTxMode{pop P2_b tg dup 0 ge{/_gr load end exec}{pop end}ifelse}bind
def}ifelse P2_b xk end{P2_d/_xl/xl load put/xl{P2_b 2 copy P2_tp 4 get add P2_tp 4 3 -1 roll put
P2_tp 5 get add P2_tp 5 3 -1 roll put/_xl load end exec}bind def}if}if
221 437 :M
158 88 1 index neg 1 index neg matrix translate 3 1 roll
currentpoint 2 copy matrix translate 6 1 roll
349 497 :M
286 148 currentpoint 1 index 6 index sub 4 index 9 index sub div
1 index 6 index sub 4 index 9 index sub div
matrix scale 11 1 roll
[ 9 1 roll cleartomark
3 2 roll matrix concatmatrix
exch matrix concatmatrix
/P2_tp exch def
P2_b mk end{md/bn known{bn}if}if
-37 350 -1 1 -35 350 1 -37 349 @a
256 236 1 32 64 59 285 438 F T 1 :f
0 0 0 :i 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003800000000000000000000000000000000000000000000000000000
000000007C7C00000000000000000000000000000000000000000000000000000000000F8003C000000000000000000000000000000000000000000000000000000001F000003C0000000000000000000000000000000000000000000000000000003E00
000003E00000000000000000000000000000000000000000000000000007C0000000001E00000000000000000000000000000000000000000000000000F8000000000001F000000000000000000000000000000000000000000000001F00000000000000
0F0000000000000000000000000000000000000000000003E00000000000000000F00000000000000000000000000000000000000000001C0000000000000000000F80000000000000000000000000000000000000000020000000000000000000007000
00000000000000000000000000000000000000400000000000000000000008000000000000000000000000000000000000000180000000000000000000000600000000000000000000000000000000000000020000000000000000000000010000000000
00000000000000000000000000000C00000000000000000000000080000000000000000000000000000000000000100000000000000000000000006000000000000000000000000000000000000020000000000000000000000000100000000000000000
00000000000000000000C00000000000000000000000000C00000000000000000000000000000000000100000000000000000000000000020000000000000000000000000000000000020000000000000000000000000001800000000000000000000000
00000000000C00000000000000000000000000004000000000000000000000000000000000100000000000000000000000000000300000000000000000000000000000000020000000000000000000000000000018000000000000000000000000000000
00C00000000000000000000000000000040000000000000000000000000000000100000000000000000000000000000003000000000000000000000000000000060000000000000000000000000000000080000000000000000000000000000008000000
00000000000000000000000000400000000000000000000000000000100000000000000000000000000000000030000000000000000000000000000060000000000000000000000000000000000800000000000000000000000000008000000000000000
0000000000000000000600000000000000000000000000010000000000000000000000000000000000010000000000000000000000000006000000000000000000000000000000000000C000000000000000000000000008000000000000000000000000
000000000000200000000000000000000000003000000000000000000000000000000000000010000000000000000000000000400000000000000000000000000000000000000C0000000000000000000000008000000000000000000000000000000000
00000200000000000000000000000300000000000000000000000000000000000000018000000000000000000000040000000000000000000000000000000000000000400000000000000000000004000000000000000000000000000000000000000040
00000000000000000000080000000000000000000000000000000000000000200000000000000000000010000000000000000000000000000000000000000010000000000000000000001000000000000000000000000000000000000000001000000000
00000000000030000000000000000000000000000000000000000008000000000000000000002000000000000000000000000000000000000000000800000000000000000000400000000000000000000000000000000000000000040000000000000000
00008000000000000000000000000000000000000000000400000000000000000000800000000000000000000000000000000000000000020000000000000000000100000000000000000000000000000000000000000001000000000000000000010000
00000000000000000000000000000000000000010000000000000000000200000000000000000000000000000000000000000000800000000000000000040000000000000000000000000000000000000000000080000000000000000004000000000000
00000000000000000000000000000000400000000000000000080000000000000000000000000000000000000000000040000000000000000008000000000000000000000000000000000000000000002000000000000000001000000000000000000000
00000000000000000000000010000000000000000010000000000000000000000000000000000000000000001000000000000000002000000000000000000000000000000000000000000000080000000000000000400000000000000000000000000000
00000000000000000800000000000000004000000000000000000000000000000000000000000000040000000000000000800000000000000000000000000000000000000000000002000000000000000080000000000000000000000000000000000000
00000000020000000000000001000000000000000000000000000000000000000000000001000000000000000200000000000000000000000000000000000000000000000100000000000000020000000000000000000000000000000000000000000000
00800000000000000400000000000000000000000000000000000000000000000080000000000000040000000000000000000000000000000000000000000000004000000000000008000000000000000000000000000000000000000000000000200000
00000000100000000000000000000000000000000000000000000000002000000000000010000000000000000000000000000000000000000000000000100000000000002000000000000000000000000000000000000000000000000010000000000000
20000000000000000000000000000000000000000000000000080000000000004000000000000000000000000000000000000000000000000008000000000000800000000000000000000000000000000000000000000000000400000000000080000000
00000000000000000000000000000000000000000002000000000001000000000000000000000000000000000000000000000000000200000000000100000000000000000000000000000000000000000000000000010000000000010000000000000000
00000000000000000000000000000000000100000000000100000000000000000000000000000000000000000000000000010000000000010000000000000000000000000000000000000000000000000001000000000001000000000000000000000000
00000000000000000000000000010000000000010000000000000000000000000000000000000000000000000001000000000002000000000000000000000000000000000000000000000000000100000000000200000000000000000000000000000000
00000000000000000000800000000002000000000000000000000000000000000000000000000000000080000000000200000000000000000000000000000000000000000000000000008000000000020000000000000000000000000000000000000000
00000000000080000000000200000000000000000000000000000000000000000000000000008000000000020000000000000000000000000000000000000000000000000000800000000002000000000000000000000000000000000000000000000000
00008000000000020000000000000000000000000000000000000000000000000000800000000002000000000000000000000000000000000000000000000000000080000000000200000000000000000000000000000000000000000000000000008000
00000004000000000000000000000000000000000000000000000000000080000000000400000000000000000000000000000000000000000000000000004000000000040000000000000000000000000000000000000000000000000000400000000004
00000000000000000000000000000000000000000000000000004000000000040000000000000000000000000000000000000000000000000000400000000004000000000000000000000000000000000000000000000000000040000000000400000000
00000000000000000000000000000000000000000000400000000004000000000000000000000000000000000000000000000000000040000000000400000000000000000000000000000000000000000000000000004000000000040000000000000000
00000000000000000000000000000000000040000000000400000000000000000000000000000000000000000000000000004000000000080000000000000000000000000000000000000000000000000000400000000008000000000000000000000000
00000000000000000000000000002000000000080000000000000000000000000000000000000000000000000000200000000008000000000000000000000000000000000000000000000000000020000000000800000000000000000000000000000000
00000000000000000000200000000008000000000000000000000000000000000000000000000000000020000000000800000000000000000000000000000000000000000000000000002000000000080000000000000000000000000000000000000000
00000000000020000000000800000000000000000000000000000000000000000000000000002000000000080000000000000000000000000000000000000000000000000000200000000008000000000000000000000000000000000000000000000000
00002000000000100000000000000000000000000000000000000000000000000000200000000010000000000000000000000000000000000000000000000000000010000000001000000000000000000000000000000000000000000000000000001000
000000100000000000000000000000000000000000000000000000000000100000000010000000000000000000000000000000000000000000000000000010000000001000000000000000000000000000000000000000000000000000001000
00000010000000000000000000000000000000000000000000000000000010000000001000000000000000000000000000000000000000000000000000001000000000080000000000000000000000000000000000000000000000000000100000000008
00000000000000000000000000000000000000000000000000002000000000080000000000000000000000000000000000000000000000000000200000000004000000000000000000000000000000000000000000000000000020000000000400000000
00000000000000000000000000000000000000000000400000000004000000000000000000000000000000000000000000000000000040000000000200000000000000000000000000000000000000000000000000004000000000020000000000000000
00000000000000000000000000000000000080000000000200000000000000000000000000000000000000000000000000008000000000010000000000000000000000000000000000000000000000000000800000000001000000000000000000000000
00000000000000000000000000010000000000010000000000000000000000000000000000000000000000000001000000000000800000000000000000000000000000000000000000000000000100000000000080000000000000000000000000000000
00000000000000000002000000000000800000000000000000000000000000000000000000000000000200000000000040000000000000000000000000000000000000000000000000020000000000004000000000000000000000000000000000000000
00000000000400000000000040000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000000000000000000000000
00080000000000002000000000000000000000000000000000000000000000000008000000000000100000000000000000000000000000000000000000000000000800000000000010000000000000000000000000000000000000000000000000100000
00000000100000000000000000000000000000000000000000000000001000000000000008000000000000000000000000000000000000000000000000100000000000000800000000000000000000000000000000000000000000000020000000000000
080000000000000000000000000000000000000000000000002000000000000004000000000000000000000000000000000000000000000000200000000000000C0000000000000000000000000000000000000000000000004000000000000004000000
00000000000000000000000000000000000000000040000000000000020000000000000000000000000000000000000000000000004000000000000002000000000000000000000000000000000000000000000000800000000000000200000000000000
00000000000000000000000000000000008000000000000001000000000000000000000000000000000000000000000000800000000000000100000000000000000000000000000000000000000000000100000000000000010000000000000000000000
00000000000000000000000001000000000000000080000000000000000000000000000000000000000000000100000000000000008000000000000000000000000000000000000000000000020000000000000000800000000000000000000000000000
00000000000000000200000000000000004000000000000000000000000000000000000000000000020000000000000000400000000000000000000000000000000000000000000004000000000000000040000000000000000000000000000000000000
00000000040000000000000000200000000000000000000000000000000000000000000004000000000000000010000000000000000000000000000000000000000000000800000000000000000800000000000000000000000000000000000000000000
10000000000000000004000000000000000000000000000000000000000000002000000000000000000200000000000000000000000000000000000000000000400000000000000000010000000000000000000000000000000000000000000080000000
00000000000080000000000000000000000000000000000000000001000000000000000000008000000000000000000000000000000000000000000200000000000000000000400000000000000000000000000000000000000000040000000000000000
00002000000000000000000000000000000000000000000800000000000000000000100000000000000000000000000000000000000000100000000000000000000008000000000000000000000000000000000000000010000000000000000000000400
00000000000000000000000000000000000000200000000000000000000002000000000000000000000000000000000000000040000000000000000000000100000000000000000000000000000000000000008000000000000000000000008000000000
00000000000000000000000000000100000000000000000000000080000000000000000000000000000000000000020000000000000000000000004000000000000000000000000000000000000004000000000000000000000000200000000000000000
00000000000000000000080000000000000000000000001000000000000000000000000000000000000010000000000000000000000000080000000000000000000000000000000000002000000000000000000000000004000000000000000000000000
00000000000040000000000000000000000000020000000000000000000000000000000000004000000000000000000000000001000000000000000000000000000000000000800000000000000000000000000100000000000000000000000000000000
00010000000000000000000000000000800000000000000000000000000000000002000000000000000000000000000040000000000000000000000000000000000400000000000000000000000000002000000000000000000000000000000000080000
00000000000000000000000010000000000000000000000000000000001000000000000000000000000000000800000000000000000000000000000000200000000000000000000000000000040000000000000000000000000000000060000000000000
00000000000000000200000000000000000000000000000000800000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001000000000000000000000000000000010000000000000000000000
0000000000C00000000000000000000000000000060000000000000000000000000000000030000000000000000000000000000018000000000000000000000000000000000E0000000000000000000000000000E0000000000000000000000000000000
00018000000000000000000000000003000000000000000000000000000000000000600000000000000000000000000C00000000000000000000000000000000000018000000000000000000000000300000000000000000000000000000000000000600
0000000000000000000000C000000000000000000000000000000000000001800000000000000000000003000000000000000000000000000000000000000060000000000000000000000C00000000000000000000000000000000000000001C00000000
000000000000700000000000000000000000000000000000000000030000000000000000000180000000000000000000000000000000000000000000C0000000000000000006000000000000000000000000000000000000000000003000000000000000
0018000000000000000000000000000000000000000000000C00000000000000006000000000000000000000000000000000000000000000030000000000000001800000000000000000000000000000000000000000000000E00000000000000E000000
00000000000000000000000000000000000000000018000000000000300000000000000000000000000000000000000000000000000E000000000001C000000000000000000000000000000000000000000000000001FFFFFFFFFFFF0000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
%ADOeod
:j
236 236 1 30 59 59 221 437 F T 1 :f
0 0 0 :i 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001F0000000000000000000000000000000000000000000000000000000003E0F8000000000
000000000000000000000000000000000000000000000FC0007C0000000000000000000000000000000000000000000000000001F0000003E00000000000000000000000000000000000000000000000007E000000001F00000000000000000000000000
000000000000000000001F800000000000F800000000000000000000000000000000000000000003E000000000000007C000000000000000000000000000000000000000003C00000000000000003E000000000000000000000000000000000000000040
000000000000000001C0000000000000000000000000000000000000018000000000000000000020000000000000000000000000000000000000060000000000000000000018000000000000000000000000000000000000080000000000000000000006
000000000000000000000000000000000000300000000000000000000001000000000000000000000000000000000000C00000000000000000000000C0000000000000000000000000000000000100000000000000000000000030000000000000000000
00000000000000060000000000000000000000000800000000000000000000000000000000080000000000000000000000000600000000000000000000000000000000300000000000000000000000000100000000000000000000000000000000C00000
0000000000000000000000C000000000000000000000000000000100000000000000000000000000003000000000000000000000000000000600000000000000000000000000000800000000000000000000000000000800000000000000000000000000
00060000000000000000000000000000300000000000000000000000000000010000000000000000000000000000C0000000000000000000000000000000C000000000000000000000000001000000000000000000000000000000003000000000000000
0000000000060000000000000000000000000000000008000000000000000000000000180000000000000000000000000000000006000000000000000000000000200000000000000000000000000000000001800000000000000000000000C000000000
00000000000000000000000000400000000000000000000001000000000000000000000000000000000000300000000000000000000002000000000000000000000000000000000000080000000000000000000004000000000000000000000000000000
00000004000000000000000000000400000000000000000000000000000000000002000000000000000000000800000000000000000000000000000000000002000000000000000000001000000000000000000000000000000000000001000000000000
00000000200000000000000000000000000000000000000080000000000000000000200000000000000000000000000000000000000040000000000000000000400000000000000000000000000000000000000040000000000000000000800000000000
00000000000000000000000000002000000000000000000100000000000000000000000000000000000000001000000000000000000100000000000000000000000000000000000000000800000000000000000200000000000000000000000000000000
00000000080000000000000000040000000000000000000000000000000000000000040000000000000000080000000000000000000000000000000000000000020000000000000000080000000000000000000000000000000000000000010000000000
00000010000000000000000000000000000000000000000001000000000000000020000000000000000000000000000000000000000000800000000000000040000000000000000000000000000000000000000000400000000000000040000000000000
00000000000000000000000000000020000000000000008000000000000000000000000000000000000000000020000000000000010000000000000000000000000000000000000000000010000000000000020000000000000000000000000000000000
00000000000800000000000002000000000000000000000000000000000000000000000400000000000004000000000000000000000000000000000000000000000400000000000008000000000000000000000000000000000000000000000200000000
00001000000000000000000000000000000000000000000000010000000000001000000000000000000000000000000000000000000000008000000000002000000000000000000000000000000000000000000000008000000000004000000000000000
00000000000000000000000000000000400000000000800000000000000000000000000000000000000000000000200000000000800000000000000000000000000000000000000000000000100000000000800000000000000000000000000000000000
00000000000010000000000100000000000000000000000000000000000000000000000010000000000100000000000000000000000000000000000000000000000008000000000100000000000000000000000000000000000000000000000008000000
00020000000000000000000000000000000000000000000000000800000000020000000000000000000000000000000000000000000000000800000000020000000000000000000000000000000000000000000000000400000000020000000000000000
00000000000000000000000000000000040000000004000000000000000000000000000000000000000000000000040000000004000000000000000000000000000000000000000000000000040000000004000000000000000000000000000000000000
00000000000002000000000800000000000000000000000000000000000000000000000002000000000800000000000000000000000000000000000000000000000002000000000800000000000000000000000000000000000000000000000001000000
00080000000000000000000000000000000000000000000000000100000000100000000000000000000000000000000000000000000000000100000000100000000000000000000000000000000000000000000000000100000000100000000000000000
00000000000000000000000000000000008000000010000000000000000000000000000000000000000000000000008000000020000000000000000000000000000000000000000000000000008000000020000000000000000000000000000000000000
00000000000000800000002000000000000000000000000000000000000000000000000000400000004000000000000000000000000000000000000000000000000000400000004000000000000000000000000000000000000000000000000000400000
00400000000000000000000000000000000000000000000000000040000000400000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000020000000800000000000000000
00000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000002000000100000000000000000000000000000000000000000000000000001000000100000000000000000000000000000000000000
00000000000000100000010000000000000000000000000000000000000000000000000000100000010000000000000000000000000000000000000000000000000000080000020000000000000000000000000000000000000000000000000000080000
02000000000000000000000000000000000000000000000000000008000002000000000000000000000000000000000000000000000000000008000004000000000000000000000000000000000000000000000000000004000004000000000000000000
00000000000000000000000000000000000400000400000000000000000000000000000000000000000000000000000400000400000000000000000000000000000000000000000000000000000400000400000000000000000000000000000000000000
00000000000000040000040000000000000000000000000000000000000000000000000000040000040000000000000000000000000000000000000000000000000000040000040000000000000000000000000000000000000000000000000000040000
04000000000000000000000000000000000000000000000000000004000002000000000000000000000000000000000000000000000000000008000002000000000000000000000000000000000000000000000000000008000002000000000000000000
00000000000000000000000000000000000800000200000000000000000000000000000000000000000000000000000800000200000000000000000000000000000000000000000000000000000800000200000000000000000000000000000000000000
00000000000000080000020000000000000000000000000000000000000000000000000000080000020000000000000000000000000000000000000000000000000000080000020000000000000000000000000000000000000000000000000000080000
02000000000000000000000000000000000000000000000000000008000002000000000000000000000000000000000000000000000000000008000002000000000000000000000000000000000000000000000000000008000002000000000000000000
0000000000000000000000000000000000080000010000000000000000000000000000000000000000000000000000100000010000000000000000000000000000000000000000000000000000100000
01000000000000000000000000000000000000000000000000000010000001000000000000000000000000000000000000000000000000000010000001000000000000000000000000000000000000000000000000000010000001000000000000000000
00000000000000000000000000000000001000000100000000000000000000000000000000000000000000000000001000000100000000000000000000000000000000000000000000000000001000000100000000000000000000000000000000000000
00000000000000100000010000000000000000000000000000000000000000000000000000100000010000000000000000000000000000000000000000000000000000100000010000000000000000000000000000000000000000000000000000100000
01000000000000000000000000000000000000000000000000000010000000800000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000020000000800000000000000000
00000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000
00000000000000200000008000000000000000000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000200000004000000000000000000000000000000000000000000000000000400000
00400000000000000000000000000000000000000000000000000040000000200000000000000000000000000000000000000000000000000080000000200000000000000000000000000000000000000000000000000080000000100000000000000000
00000000000000000000000000000000010000000010000000000000000000000000000000000000000000000000010000000008000000000000000000000000000000000000000000000000020000000008000000000000000000000000000000000000
00000000000002000000000400000000000000000000000000000000000000000000000004000000000400000000000000000000000000000000000000000000000004000000000200000000000000000000000000000000000000000000000008000000
00020000000000000000000000000000000000000000000000000800000000010000000000000000000000000000000000000000000000001000000000010000000000000000000000000000000000000000000000001000000000008000000000000000
00000000000000000000000000000000200000000000800000000000000000000000000000000000000000000000200000000000400000000000000000000000000000000000000000000000400000000000400000000000000000000000000000000000
00000000000040000000000020000000000000000000000000000000000000000000000080000000000020000000000000000000000000000000000000000000000080000000000010000000000000000000000000000000000000000000000100000000
00001000000000000000000000000000000000000000000000010000000000000800000000000000000000000000000000000000000000020000000000000800000000000000000000000000000000000000000000020000000000000400000000000000
00000000000000000000000000000004000000000000040000000000000000000000000000000000000000000004000000000000020000000000000000000000000000000000000000000008000000000000020000000000000000000000000000000000
00000000000800000000000001000000000000000000000000000000000000000000001000000000000001000000000000000000000000000000000000000000001000000000000000800000000000000000000000000000000000000000002000000000
00000080000000000000000000000000000000000000000000200000000000000040000000000000000000000000000000000000000000400000000000000040000000000000000000000000000000000000000000400000000000000020000000000000
00000000000000000000000000000080000000000000002000000000000000000000000000000000000000000080000000000000001000000000000000000000000000000000000000000100000000000000000800000000000000000000000000000000
00000000020000000000000000040000000000000000000000000000000000000000040000000000000000020000000000000000000000000000000000000000080000000000000000010000000000000000000000000000000000000000100000000000
00000000800000000000000000000000000000000000000020000000000000000000400000000000000000000000000000000000000040000000000000000000200000000000000000000000000000000000000080000000000000000000180000000000
00000000000000000000000000030000000000000000000004000000000000000000000000000000000000040000000000000000000002000000000000000000000000000000000000080000000000000000000001000000000000000000000000000000
00000010000000000000000000000080000000000000000000000000000000000020000000000000000000000040000000000000000000000000000000000040000000000000000000000020000000000000000000000000000000000080000000000000
000000000010000000000000000000000000000000000100000000000000000000000008000000000000000000000000000000000200000000000000000000000006000000000000000000000000000000000C0000000000000000000000000100000000
00000000000000000000000010000000000000000000000000008000000000000000000000000000000020000000000000000000000000004000000000000000000000000000000040000000000000000000000000002000000000000000000000000000
00008000000000000000000000000000100000000000000000000000000000010000000000000000000000000000080000000000000000000000000000020000000000000000000000000000040000000000000000000000000000040000000000000000
000000000000020000000000000000000000000000080000000000000000000000000000018000000000000000000000000000300000000000000000000000000000007000000000000000000000000001C00000000000000000000000000000000E0000
000000000000000000000E0000000000000000000000000000000001800000000000000000000000300000000000000000000000000000000000700000000000000000000001C000000000000000000000000000000000000E000000000000000000000E
0000000000000000000000000000000000000180000000000000000000300000000000000000000000000000000000000070000000000000000001C0000000000000000000000000000000000000000C0000000000000000060000000000000000000000
000000000000000000038000000000000000380000000000000000000000000000000000000000007000000000000001C00000000000000000000000000000000000000000000C0000000000000600000000000000000000000000000000000000000000
03800000000000380000000000000000000000000000000000000000000000700000000001C000000000000000000000000000000000000000000000000FFFFFFFFFFE000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
%ADOeod
:j
gR
gS 0 47 552 658 rC
203 521 :M
f0_10 sf
-.015(Figure 4.5. Polygons of 15 and 17 sides.)A
78 551 :M
-.009(Visual ambiguity is, in general, undesirable, because it results in schemas of a visual model that may)A
481 551 :M
.686 .069( not be)J
60 566 :M
.37 .037(correctly interpreted by a user. Strict visual ambiguity is straightforward to detect by testing the )J
457 553 16 19 rC
467 564 :M
f4_14 sf
( )S
457 553 :M
psb
currentpoint pse
458 554 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 47 552 658 rC
473 566 :M
f0_10 sf
.651 .065( and )J
494 553 16 19 rC
504 564 :M
f4_14 sf
( )S
494 553 :M
psb
currentpoint pse
495 554 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
86 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 47 552 658 rC
60 581 :M
f0_10 sf
(functions, and the constraints affecting the concepts in question. Non-strict ambiguity)S
.126 .013( is much harder to define)J
60 596 :M
1.71 .171(formally, let alone detect; there may not exist universal)J
305 596 :M
2.255 .225( similarity \(as opposed to equality\) measures.)J
60 611 :M
-.007(Investigating possible definitions and similarity detection algorithms is part of our future work.)A
60 641 :M
f0_12 sf
-.026(4.4.2.3 Semantic Ambiguity)A
78 671 :M
f0_10 sf
.21 .021(Semantic ambiguity occurs when the appearance of a visual attribute value does not bring to mind the data)J
60 686 :M
-.014(attribute value with which it corresponds. The degree)A
276 686 :M
.647 .065( of ambiguity depends upon the memory of the user, the)J
60 701 :M
-.001(range of data attribute values, the type of visual attribute, and the choice of visual attribute values. For example,)A
endp
%%Page: 16 16
%%BeginPageSetup
initializepage
(; page: 16 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(39)S
gR
gS 0 37 552 631 rC
60 49 :M
f0_10 sf
1.091 .109(using randomly assigned colors to represent values between 1 and 500 would be problematic for any user)J
60 64 :M
-.015(lacking an perfect memory \(if the values are of)A
248 64 :M
.613 .061( interest to the user\). Using colors ordered and spaced by their)J
60 79 :M
-.002(place in the spectrum would be better, giving the user a feel for the magnitude of different values. Using Arabic)A
60 94 :M
-.011(numerals to visually represent these values would be the most precise \(though)A
372 94 :M
.594 .059( possibly less effective for giving)J
60 109 :M
-.017(a quick impression of the value\). )A
194 109 :M
.607 .061( While improving human memory is beyond the scope of this thesis, we can)J
60 124 :M
-.012(offer visual attribute and value choice guidelines to reduce semantic ambiguity.)A
78 139 :M
-.021(In general, any visual attribute type can be)A
248 139 :M
.601 .06( used for representing a data attribute with a small value range.)J
60 154 :M
-.011(For example, it would not be difficult for a user to learn associations between a small)A
401 154 :M
.468 .047( number of shapes, colors,)J
60 169 :M
-.008(or patterns, and their corresponding data model values. Precisely capturing values with a larger range,)A
470 169 :M
.32 .032( however,)J
60 184 :M
.516 .052(requires visual attributes with inherent meaning; the visual value must)J
350 184 :M
1.327 .133( in some way suggest the data value.)J
60 199 :M
.561 .056(Attribute types may be divided into two categories with respect to inherent meaning. )J
414 199 :M
1.264 .126( Text and pictures can)J
60 214 :M
-.008(have much inherent meaning as long as the viewer shares a linguistic or cultural context with the creator.)A
480 214 :M
.489 .049( Some)J
60 229 :M
.984 .098(attribute values are almost universal in their inherent meaning, e.g., the image of a human face carries the)J
60 244 :M
.907 .091(meaning \322a human face\323 to most humans who see it. Others require more cultural context, for example, a)J
60 259 :M
-.017(picture formed of a red octagon with)A
207 259 :M
.605 .06( the word \322STOP\323 in the middle has an immediate association for people)J
60 274 :M
-.009(who have experience with roads in certain countries. Shape, color, pattern, size, and location)A
433 274 :M
.597 .06( have less inherent)J
60 289 :M
.684 .068(meaning, and what meaning they have is limited to more narrow contexts. For example, a red colored light)J
60 304 :M
.947 .095(means \322stop\323 in the context of driving, but it also means \322on\323 in the context of electric kitchen ovens and)J
60 319 :M
.054 .005(toasters. If a precise representation is not needed, the limited inherent meaning of these attributes can be useful.)J
60 334 :M
-.002(For example, consider a metaphor that associates the spectrum of colors to a large range of temperatures. While)A
60 349 :M
.534 .053(specific values would be hard to determine, the)J
256 349 :M
1.16 .116( user could easily make comparisons and determine general)J
60 364 :M
-.024(magnitudes of values.)A
78 379 :M
-.015(As a result, in most cases text and pictures)A
248 379 :M
.649 .065( should be used to represent values with large ranges. In some)J
60 394 :M
-.008(cases, when a general impression of the value is needed instead of the exact)A
363 394 :M
.62 .062( value, other attributes can be used.)J
60 409 :M
-.082(Values with a)A
115 409 :M
.601 .06( smaller range, such as entity-class kind from Section 4.2.2, may be represented by any type of)J
60 424 :M
-.091(attribute.)A
60 469 :M
f1_14 sf
(4.5 Combining and Mixing Metaphors)S
78 499 :M
f0_10 sf
-.009(Different metaphors have different characteristics: emphasis, space efficiency, intuitiveness, and)A
464 499 :M
( versatility.)S
60 514 :M
1.202 .12(There is no single metaphor that is best)J
231 514 :M
1.936 .194( for all schemas and all situations. We believe that a schema)J
60 529 :M
.648 .065(visualization tool should support a variety of metaphors and associated visual models. Users will be able to)J
60 544 :M
.215 .021(choose among them so that the same data schema may be viewed as different visual schemas, each suitable for)J
60 559 :M
(different circumstances.)S
78 574 :M
.611 .061(The use of different metaphors may be taken one step further, by allowing the use of different metaphor)J
60 589 :M
-.009(correspondences for different parts of the same visual schema. This is faithful to)A
384 589 :M
.581 .058( the definition of metaphors in)J
60 604 :M
.976 .098(Section 4.3.1, which allows)J
177 604 :M
1.71 .171( correspondences between one data model concept and several visual model)J
60 619 :M
.578 .058(concepts. Such metaphors may originally be defined this way, or)J
332 619 :M
1.295 .129( may be defined as a combination of two)J
60 634 :M
.485 .049(simpler metaphors. This involves combining their visual models into a single, unified model, and combining)J
60 649 :M
-.043(the metaphors to)A
127 649 :M
.598 .06( map from that model. The following section presents some example metaphors that will be)J
60 664 :M
-.007(used to demonstrate the formal specification of metaphor combination.)A
endp
%%Page: 17 17
%%BeginPageSetup
initializepage
(; page: 17 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(40)S
gR
1 G
gS 78 43 57 26 rC
78 43 57 26 rF
gR
0 G
gS 0 0 552 730 rC
78 44 -1 1 135 43 1 78 43 @a
78 69 -1 1 135 68 1 78 68 @a
-1 -1 79 69 1 1 78 43 @b
81 46 51 20 rC
85 59 :M
f0_12 sf
-.065(Model )A
gR
1 G
gS 134 43 113 26 rC
134 43 113 26 rF
gR
0 G
gS 0 0 552 730 rC
134 44 -1 1 247 43 1 134 43 @a
134 69 -1 1 247 68 1 134 68 @a
137 46 107 20 rC
141 59 :M
f0_12 sf
-.141(Concept )A
184 48 19 16 rC
195 59 :M
f2_12 sf
( )S
f0_12 sf
( )S
184 48 :M
psb
currentpoint pse
185 49 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
(\() t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 246 43 94 26 rC
246 43 94 26 rF
gR
0 G
gS 0 0 552 730 rC
246 44 -1 1 340 43 1 246 43 @a
246 69 -1 1 340 68 1 246 68 @a
249 46 88 20 rC
253 59 :M
f0_12 sf
-.035(Attribute )A
299 48 30 16 rC
310 59 :M
f2_12 sf
( )S
f0_12 sf
( )S
299 48 :M
psb
currentpoint pse
300 49 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
(\() t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(.) t
62 42 /Times-Italic 0 0 0 50 T
(A) t
93 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 339 43 163 26 rC
339 43 163 26 rF
gR
0 G
gS 0 0 552 730 rC
339 44 -1 1 502 43 1 339 43 @a
-1 -1 502 69 1 1 501 43 @b
339 69 -1 1 502 68 1 339 68 @a
342 46 157 20 rC
346 59 :M
f0_12 sf
-.04(Attribute Values )A
429 46 48 19 rC
439 57 :M
f2_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
429 46 :M
psb
currentpoint pse
430 47 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Roman 0 0 0 100 T
(\() t
33 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
122 51 /Times-Roman 0 0 0 58 T
(*) t
151 96 /Times-Roman 0 0 0 100 T
(\() t
184 96 /Times-Italic 0 0 0 100 T
(P) t
244 96 /Times-Roman 0 0 0 100 T
(.) t
272 96 /Times-Italic 0 0 0 100 T
(A) t
332 96 /Times-Roman 0 0 0 100 T
(\)\)) t
pse
psb
pse
gR
1 G
gS 78 68 57 18 rC
78 68 57 18 rF
gR
0 G
gS 0 0 552 730 rC
78 69 -1 1 135 68 1 78 68 @a
-.25 -.25 134.25 85.25 .25 .25 134 68 @b
-1 -1 79 86 1 1 78 68 @b
85 71 14 12 rC
95 78 :M
f4_14 sf
( )S
85 67 :M
psb
currentpoint pse
86 68 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
77 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(1) t
pse
psb
pse
gR
1 G
gS 134 68 113 18 rC
134 68 113 18 rF
gR
0 G
gS 0 0 552 730 rC
134 69 -1 1 247 68 1 134 68 @a
-.25 -.25 134.25 85.25 .25 .25 134 68 @b
137 71 107 11 rC
141 80 :M
f0_10 sf
-.235(node )A
gR
1 G
gS 246 68 94 18 rC
246 68 94 18 rF
gR
0 G
gS 0 0 552 730 rC
246 69 -1 1 340 68 1 246 68 @a
249 71 88 11 rC
253 80 :M
f0_10 sf
-.053(shape )A
gR
1 G
gS 339 68 163 18 rC
339 68 163 18 rF
gR
0 G
gS 0 0 552 730 rC
339 69 -1 1 502 68 1 339 68 @a
-1 -1 502 86 1 1 501 68 @b
342 71 157 11 rC
346 80 :M
f0_10 sf
-.163({oval})A
gR
1 G
gS 78 85 57 17 rC
78 85 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 101.25 .25 .25 134 85 @b
-1 -1 79 102 1 1 78 85 @b
1 G
134 85 113 17 rC
134 85 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 101.25 .25 .25 134 85 @b
1 G
246 85 94 17 rC
246 85 94 17 rF
249 88 88 11 rC
253 97 :M
0 G
f0_10 sf
-.089(location )A
gR
1 G
gS 339 85 163 17 rC
339 85 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 102 1 1 501 85 @b
342 88 157 11 rC
346 97 :M
f0_10 sf
-.039(plane-points)A
gR
1 G
gS 78 101 57 17 rC
78 101 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 117.25 .25 .25 134 101 @b
-1 -1 79 118 1 1 78 101 @b
1 G
134 101 113 17 rC
134 101 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 117.25 .25 .25 134 101 @b
1 G
246 101 94 17 rC
246 101 94 17 rF
249 104 88 11 rC
253 113 :M
0 G
f0_10 sf
(size )S
gR
1 G
gS 339 101 163 17 rC
339 101 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 118 1 1 501 101 @b
342 104 157 11 rC
346 113 :M
f0_10 sf
-.089({100 pixels})A
gR
1 G
gS 78 117 57 17 rC
78 117 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 133.25 .25 .25 134 117 @b
-1 -1 79 134 1 1 78 117 @b
1 G
134 117 113 17 rC
134 117 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 133.25 .25 .25 134 117 @b
1 G
246 117 94 17 rC
246 117 94 17 rF
249 120 88 11 rC
253 129 :M
0 G
f0_10 sf
(color )S
gR
1 G
gS 339 117 163 17 rC
339 117 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 134 1 1 501 117 @b
342 120 157 11 rC
346 129 :M
f0_10 sf
-.136({white})A
gR
1 G
gS 78 133 57 17 rC
78 133 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 149.25 .25 .25 134 133 @b
-1 -1 79 150 1 1 78 133 @b
1 G
134 133 113 17 rC
134 133 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 149.25 .25 .25 134 133 @b
1 G
246 133 94 17 rC
246 133 94 17 rF
249 136 88 11 rC
253 145 :M
0 G
f0_10 sf
-.026(label-text )A
gR
1 G
gS 339 133 163 17 rC
339 133 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 150 1 1 501 133 @b
342 136 157 11 rC
346 145 :M
f0_10 sf
-.332(text)A
gR
1 G
gS 78 149 57 17 rC
78 149 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 165.25 .25 .25 134 149 @b
-1 -1 79 166 1 1 78 149 @b
1 G
134 149 113 17 rC
134 149 113 17 rF
gR
gS 0 0 552 730 rC
134 165.25 -.25 .25 246.25 165 .25 134 165 @a
-.25 -.25 134.25 165.25 .25 .25 134 149 @b
1 G
246 149 94 17 rC
246 149 94 17 rF
gR
gS 0 0 552 730 rC
246 165.25 -.25 .25 339.25 165 .25 246 165 @a
249 152 88 11 rC
253 161 :M
f0_10 sf
-.073(label-color )A
gR
1 G
gS 339 149 163 17 rC
339 149 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 166 1 1 501 149 @b
339 165.25 -.25 .25 501.25 165 .25 339 165 @a
342 152 157 11 rC
346 161 :M
f0_10 sf
-.009({blue,red})A
gR
1 G
gS 78 165 57 17 rC
78 165 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 181.25 .25 .25 134 165 @b
-1 -1 79 182 1 1 78 165 @b
1 G
134 165 113 17 rC
134 165 113 17 rF
gR
gS 0 0 552 730 rC
134 165.25 -.25 .25 246.25 165 .25 134 165 @a
-.25 -.25 134.25 181.25 .25 .25 134 165 @b
137 168 107 11 rC
141 177 :M
f0_10 sf
-.175( edge )A
gR
1 G
gS 246 165 94 17 rC
246 165 94 17 rF
gR
0 G
gS 0 0 552 730 rC
246 165.25 -.25 .25 339.25 165 .25 246 165 @a
249 168 88 11 rC
253 177 :M
f0_10 sf
-.009(source-location )A
gR
1 G
gS 339 165 163 17 rC
339 165 163 17 rF
gR
0 G
gS 0 0 552 730 rC
339 165.25 -.25 .25 501.25 165 .25 339 165 @a
-1 -1 502 182 1 1 501 165 @b
342 168 157 11 rC
346 177 :M
f0_10 sf
-.039(plane-points)A
gR
1 G
gS 78 181 57 17 rC
78 181 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 197.25 .25 .25 134 181 @b
-1 -1 79 198 1 1 78 181 @b
1 G
134 181 113 17 rC
134 181 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 197.25 .25 .25 134 181 @b
137 184 107 11 rC
141 193 :M
f0_10 sf
( )S
gR
1 G
gS 246 181 94 17 rC
246 181 94 17 rF
249 184 88 11 rC
253 193 :M
0 G
f0_10 sf
-.011(dest-location )A
gR
gS 339 181 163 17 rC
339 181 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 198 1 1 501 181 @b
342 184 157 11 rC
346 193 :M
f0_10 sf
-.039(plane-points)A
gR
1 G
gS 78 197 57 17 rC
78 197 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 213.25 .25 .25 134 197 @b
-1 -1 79 214 1 1 78 197 @b
1 G
134 197 113 17 rC
134 197 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 213.25 .25 .25 134 197 @b
137 200 107 11 rC
141 209 :M
f0_10 sf
( )S
gR
1 G
gS 246 197 94 17 rC
246 197 94 17 rF
249 200 88 11 rC
253 209 :M
0 G
f0_10 sf
(color )S
gR
gS 339 197 163 17 rC
339 197 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 214 1 1 501 197 @b
342 200 157 11 rC
346 209 :M
f0_10 sf
-.023({red, orange, magenta, green})A
gR
1 G
gS 78 213 57 18 rC
78 213 57 18 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 230.25 .25 .25 134 213 @b
-1 -1 79 231 1 1 78 213 @b
1 G
134 213 113 18 rC
134 213 113 18 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 230.25 .25 .25 134 213 @b
137 216 107 11 rC
141 225 :M
f0_10 sf
( )S
gR
1 G
gS 246 213 94 18 rC
246 213 94 18 rF
249 216 88 11 rC
253 225 :M
0 G
f0_10 sf
-.078(from-node )A
gR
gS 339 213 163 18 rC
339 213 163 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 231 1 1 501 213 @b
342 216 157 12 rC
346 225 :M
f4_10 sf
(I)S
350 225 :M
f0_10 sf
-.019(\(node\))A
gR
1 G
gS 78 230 57 18 rC
78 230 57 18 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 247.25 .25 .25 134 230 @b
-1 -1 79 248 1 1 78 230 @b
1 G
134 230 113 18 rC
134 230 113 18 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 247.25 .25 .25 134 230 @b
137 233 107 11 rC
141 242 :M
f0_10 sf
( )S
gR
1 G
gS 246 230 94 18 rC
246 230 94 18 rF
249 233 88 11 rC
253 242 :M
0 G
f0_10 sf
(to-node )S
gR
gS 339 230 163 18 rC
339 230 163 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 248 1 1 501 230 @b
342 233 157 12 rC
346 242 :M
f4_10 sf
(I)S
350 242 :M
f0_10 sf
-.019(\(node\))A
gR
1 G
gS 78 247 57 17 rC
78 247 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 263.25 .25 .25 134 247 @b
-1 -1 79 264 1 1 78 247 @b
1 G
134 247 113 17 rC
134 247 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 263.25 .25 .25 134 247 @b
137 250 107 11 rC
141 259 :M
f0_10 sf
( )S
gR
1 G
gS 246 247 94 17 rC
246 247 94 17 rF
249 250 88 11 rC
253 259 :M
0 G
f0_10 sf
-.026(label-text )A
gR
gS 339 247 163 17 rC
339 247 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 264 1 1 501 247 @b
342 250 157 11 rC
346 259 :M
f0_10 sf
-.332(text)A
gR
1 G
gS 78 263 57 17 rC
78 263 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 279.25 .25 .25 134 263 @b
78 279.25 -.25 .25 134.25 279 .25 78 279 @a
-1 -1 79 280 1 1 78 263 @b
1 G
134 263 113 17 rC
134 263 113 17 rF
gR
gS 0 0 552 730 rC
134 279.25 -.25 .25 246.25 279 .25 134 279 @a
-.25 -.25 134.25 279.25 .25 .25 134 263 @b
137 266 107 11 rC
141 275 :M
f0_10 sf
( )S
gR
1 G
gS 246 263 94 17 rC
246 263 94 17 rF
gR
0 G
gS 0 0 552 730 rC
246 279.25 -.25 .25 339.25 279 .25 246 279 @a
249 266 88 11 rC
253 275 :M
f0_10 sf
-.073(label-color )A
gR
1 G
gS 339 263 163 17 rC
339 263 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 280 1 1 501 263 @b
339 279.25 -.25 .25 501.25 279 .25 339 279 @a
342 266 157 11 rC
346 275 :M
f0_10 sf
-.042({black})A
gR
1 G
gS 78 279 57 18 rC
78 279 57 18 rF
gR
0 G
gS 0 0 552 730 rC
78 279.25 -.25 .25 134.25 279 .25 78 279 @a
-.25 -.25 134.25 296.25 .25 .25 134 279 @b
-1 -1 79 297 1 1 78 279 @b
85 282 14 12 rC
95 289 :M
f4_14 sf
( )S
85 278 :M
psb
currentpoint pse
86 279 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
79 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(2) t
pse
psb
pse
gR
1 G
gS 134 279 113 18 rC
134 279 113 18 rF
gR
0 G
gS 0 0 552 730 rC
134 279.25 -.25 .25 246.25 279 .25 134 279 @a
-.25 -.25 134.25 296.25 .25 .25 134 279 @b
137 282 107 11 rC
141 291 :M
f0_10 sf
-.088( node )A
gR
1 G
gS 246 279 94 18 rC
246 279 94 18 rF
gR
0 G
gS 0 0 552 730 rC
246 279.25 -.25 .25 339.25 279 .25 246 279 @a
249 282 88 11 rC
253 291 :M
f0_10 sf
-.053(shape )A
gR
1 G
gS 339 279 163 18 rC
339 279 163 18 rF
gR
0 G
gS 0 0 552 730 rC
339 279.25 -.25 .25 501.25 279 .25 339 279 @a
-1 -1 502 297 1 1 501 279 @b
342 282 157 11 rC
346 291 :M
f0_10 sf
-.024({rectangle})A
gR
1 G
gS 78 296 57 17 rC
78 296 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 312.25 .25 .25 134 296 @b
-1 -1 79 313 1 1 78 296 @b
1 G
134 296 113 17 rC
134 296 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 312.25 .25 .25 134 296 @b
137 299 107 11 rC
141 308 :M
f0_10 sf
( )S
gR
1 G
gS 246 296 94 17 rC
246 296 94 17 rF
249 299 88 11 rC
253 308 :M
0 G
f0_10 sf
-.089(location )A
gR
gS 339 296 163 17 rC
339 296 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 313 1 1 501 296 @b
342 299 157 11 rC
346 308 :M
f0_10 sf
-.039(plane-points)A
gR
1 G
gS 78 312 57 17 rC
78 312 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 328.25 .25 .25 134 312 @b
-1 -1 79 329 1 1 78 312 @b
1 G
134 312 113 17 rC
134 312 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 328.25 .25 .25 134 312 @b
137 315 107 11 rC
141 324 :M
f0_10 sf
( )S
gR
1 G
gS 246 312 94 17 rC
246 312 94 17 rF
249 315 88 11 rC
253 324 :M
0 G
f0_10 sf
(size )S
gR
gS 339 312 163 17 rC
339 312 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 329 1 1 501 312 @b
342 315 157 11 rC
346 324 :M
f0_10 sf
-.089({100 pixels})A
gR
1 G
gS 78 328 57 17 rC
78 328 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 344.25 .25 .25 134 328 @b
-1 -1 79 345 1 1 78 328 @b
1 G
134 328 113 17 rC
134 328 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 344.25 .25 .25 134 328 @b
137 331 107 11 rC
141 340 :M
f0_10 sf
( )S
gR
1 G
gS 246 328 94 17 rC
246 328 94 17 rF
249 331 88 11 rC
253 340 :M
0 G
f0_10 sf
(color )S
gR
gS 339 328 163 17 rC
339 328 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 345 1 1 501 328 @b
342 331 157 11 rC
346 340 :M
f0_10 sf
-.026({yellow, brown})A
gR
1 G
gS 78 344 57 17 rC
78 344 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 360.25 .25 .25 134 344 @b
-1 -1 79 361 1 1 78 344 @b
1 G
134 344 113 17 rC
134 344 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 360.25 .25 .25 134 344 @b
137 347 107 11 rC
141 356 :M
f0_10 sf
( )S
gR
1 G
gS 246 344 94 17 rC
246 344 94 17 rF
249 347 88 11 rC
253 356 :M
0 G
f0_10 sf
-.026(label-text )A
gR
gS 339 344 163 17 rC
339 344 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 361 1 1 501 344 @b
342 347 157 11 rC
346 356 :M
f0_10 sf
-.332(text)A
gR
1 G
gS 78 360 57 17 rC
78 360 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 376.25 .25 .25 134 360 @b
-1 -1 79 377 1 1 78 360 @b
1 G
134 360 113 17 rC
134 360 113 17 rF
gR
gS 0 0 552 730 rC
134 376.25 -.25 .25 246.25 376 .25 134 376 @a
-.25 -.25 134.25 376.25 .25 .25 134 360 @b
137 363 107 11 rC
141 372 :M
f0_10 sf
( )S
gR
1 G
gS 246 360 94 17 rC
246 360 94 17 rF
gR
0 G
gS 0 0 552 730 rC
246 376.25 -.25 .25 339.25 376 .25 246 376 @a
249 363 88 11 rC
253 372 :M
f0_10 sf
-.073(label-color )A
gR
1 G
gS 339 360 163 17 rC
339 360 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 377 1 1 501 360 @b
339 376.25 -.25 .25 501.25 376 .25 339 376 @a
342 363 157 11 rC
346 372 :M
f0_10 sf
-.042({black})A
gR
1 G
gS 78 376 57 17 rC
78 376 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 392.25 .25 .25 134 376 @b
-1 -1 79 393 1 1 78 376 @b
1 G
134 376 113 17 rC
134 376 113 17 rF
gR
gS 0 0 552 730 rC
134 376.25 -.25 .25 246.25 376 .25 134 376 @a
-.25 -.25 134.25 392.25 .25 .25 134 376 @b
137 379 107 11 rC
141 388 :M
f0_10 sf
-.042( arrangement)A
gR
1 G
gS 246 376 94 17 rC
246 376 94 17 rF
gR
0 G
gS 0 0 552 730 rC
246 376.25 -.25 .25 339.25 376 .25 246 376 @a
249 379 88 11 rC
253 388 :M
f0_10 sf
-.026(label-text )A
gR
1 G
gS 339 376 163 17 rC
339 376 163 17 rF
gR
0 G
gS 0 0 552 730 rC
339 376.25 -.25 .25 501.25 376 .25 339 376 @a
-1 -1 502 393 1 1 501 376 @b
342 379 157 11 rC
346 388 :M
f0_10 sf
-.332(text)A
gR
1 G
gS 78 392 57 17 rC
78 392 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 408.25 .25 .25 134 392 @b
-1 -1 79 409 1 1 78 392 @b
1 G
134 392 113 17 rC
134 392 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 408.25 .25 .25 134 392 @b
137 395 107 11 rC
141 404 :M
f0_10 sf
( )S
gR
1 G
gS 246 392 94 17 rC
246 392 94 17 rF
249 395 88 11 rC
253 404 :M
0 G
f0_10 sf
-.073(label-color )A
gR
gS 339 392 163 17 rC
339 392 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 409 1 1 501 392 @b
342 395 157 11 rC
346 404 :M
f0_10 sf
-.023({red, orange, magenta, green})A
gR
1 G
gS 78 408 57 17 rC
78 408 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 424.25 .25 .25 134 408 @b
-1 -1 79 425 1 1 78 408 @b
1 G
134 408 113 17 rC
134 408 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 424.25 .25 .25 134 408 @b
137 411 107 11 rC
141 420 :M
f0_10 sf
( )S
gR
1 G
gS 246 408 94 17 rC
246 408 94 17 rF
249 411 88 11 rC
253 420 :M
0 G
f0_10 sf
-.034(label-location )A
gR
gS 339 408 163 17 rC
339 408 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 425 1 1 501 408 @b
342 411 157 11 rC
346 420 :M
f0_10 sf
-.039(plane-points)A
gR
1 G
gS 78 424 57 18 rC
78 424 57 18 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 441.25 .25 .25 134 424 @b
-1 -1 79 442 1 1 78 424 @b
1 G
134 424 113 18 rC
134 424 113 18 rF
gR
gS 0 0 552 730 rC
-.25 -.25 134.25 441.25 .25 .25 134 424 @b
137 427 107 11 rC
141 436 :M
f0_10 sf
( )S
gR
1 G
gS 246 424 94 18 rC
246 424 94 18 rF
249 427 88 11 rC
253 436 :M
0 G
f0_10 sf
-.023(parent-node )A
gR
gS 339 424 163 18 rC
339 424 163 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 442 1 1 501 424 @b
342 427 157 12 rC
346 436 :M
f4_10 sf
(I)S
350 436 :M
f0_10 sf
-.019(\(node\))A
gR
1 G
gS 78 441 57 18 rC
78 441 57 18 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 134.25 458.25 .25 .25 134 441 @b
78 459 -1 1 135 458 1 78 458 @a
-1 -1 79 459 1 1 78 441 @b
1 G
134 441 113 18 rC
134 441 113 18 rF
gR
gS 0 0 552 730 rC
134 459 -1 1 247 458 1 134 458 @a
-.25 -.25 134.25 458.25 .25 .25 134 441 @b
137 444 107 11 rC
141 453 :M
f0_10 sf
( )S
gR
1 G
gS 246 441 94 18 rC
246 441 94 18 rF
gR
0 G
gS 0 0 552 730 rC
246 459 -1 1 340 458 1 246 458 @a
249 444 88 11 rC
253 453 :M
f0_10 sf
-.026(child-node )A
gR
1 G
gS 339 441 163 18 rC
339 441 163 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 502 459 1 1 501 441 @b
339 459 -1 1 502 458 1 339 458 @a
342 444 157 12 rC
346 453 :M
f4_10 sf
(I)S
350 453 :M
f0_10 sf
-.019(\(node\))A
gR
gS 0 459 552 249 rC
221 480 :M
f0_10 sf
-.007(Table 4.6. Two Visual Models.)A
60 510 :M
f1_12 sf
-.034(4.5.1 Example Visual Metaphors)A
78 540 :M
f0_10 sf
.481 .048(Consider the data model )J
182 540 :M
f4_14 sf
(D)S
192 540 :M
f0_10 sf
.067 .007( of )J
f2_10 sf
.05(entity-classes)A
261 540 :M
f0_10 sf
.242 .024( and )J
f2_10 sf
.125(relationships)A
f0_10 sf
.47 .047( described in Section 4.2.4. Also consider)J
60 555 :M
-.055(the visual models, )A
135 542 14 19 rC
145 553 :M
f4_14 sf
( )S
135 542 :M
psb
currentpoint pse
136 543 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
77 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(1) t
pse
psb
pse
gR
gS 0 459 552 249 rC
149 555 :M
f0_10 sf
-.11( and )A
168 542 14 19 rC
178 553 :M
f4_14 sf
( )S
168 542 :M
psb
currentpoint pse
169 543 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
79 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(2) t
pse
psb
pse
gR
gS 0 459 552 249 rC
182 555 :M
f0_10 sf
(,)S
185 555 :M
.625 .063( described in table 4.6. Visual model )J
344 542 14 19 rC
354 553 :M
f4_14 sf
( )S
344 542 :M
psb
currentpoint pse
345 543 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
77 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(1) t
pse
psb
pse
gR
gS 0 459 552 249 rC
358 555 :M
f0_10 sf
.484 .048( is similar to )J
f4_14 sf
(G)S
423 555 :M
f0_10 sf
.484 .048( described in Section)J
60 570 :M
.567 .057(4.2.4. Visual model )J
148 557 14 19 rC
158 568 :M
f4_14 sf
( )S
148 557 :M
psb
currentpoint pse
149 558 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
77 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(1) t
pse
psb
pse
gR
gS 0 459 552 249 rC
162 570 :M
f0_10 sf
.3 .03( has )J
f2_10 sf
.191(nodes)A
f0_10 sf
.546 .055( that are rectangles, and instead of using )J
376 570 :M
f2_10 sf
-.191(edges)A
399 570 :M
f0_10 sf
1.119 .112( to represent a connection)J
60 585 :M
.546 .055(between two )J
f2_10 sf
.153(nodes)A
f0_10 sf
.275 .028(, it uses )J
174 585 :M
f2_10 sf
-.049(arrangements)A
230 585 :M
f0_10 sf
.682 .068(. )J
240 585 :M
f2_10 sf
-.059(Arrangements)A
297 585 :M
f0_10 sf
.227 .023( are)J
313 585 :M
.689 .069( formed from a )J
f2_10 sf
.256(text-display)A
430 585 :M
f0_10 sf
1.152 .115( construct and two)J
60 600 :M
f2_10 sf
-.044(nodes)A
f0_10 sf
-.041(, a parent-node and)A
160 600 :M
.421 .042( child-node. The existence of an )J
f2_10 sf
.17(arrangement)A
352 600 :M
f0_10 sf
.518 .052( affects the location of the child-node.)J
60 615 :M
-.013(The specific physical arrangement is defined by)A
252 615 :M
.526 .053( a set of constraints which require )J
f2_10 sf
.197(node)A
f0_10 sf
.595 .06( placement similar to a)J
60 630 :M
-.012(textual outline, where subpoints appear below and indented)A
298 630 :M
.652 .065( to the right of the main points. It should be noted)J
60 645 :M
.361 .036(that )J
78 632 14 19 rC
88 643 :M
f4_14 sf
( )S
78 632 :M
psb
currentpoint pse
79 633 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
79 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(2) t
pse
psb
pse
gR
gS 0 459 552 249 rC
92 645 :M
f0_10 sf
.667 .067( is a visual model not for general directed graphs but only for trees, as any child )J
f2_10 sf
.256(node)A
f0_10 sf
.896 .09( with multiple)J
60 660 :M
1.901 .19(parents would have conflicting constraints on its location. These models are accompanied by several)J
60 675 :M
-.001(composition constraints, which are of no particular interest and are therefore not shown.)A
78 690 :M
(For each visual model, we)S
.487 .049( define a metaphor. The two metaphors are shown in Tables 4.7 and 4.8. For)J
60 705 :M
1.118 .112(brevity, the part of the metaphor that corresponds)J
272 705 :M
2.299 .23( to the )J
308 694 10 14 rC
318 705 :M
f2_12 sf
( )S
308 694 :M
psb
currentpoint pse
309 695 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Italic 0 0 0 58 T
(v) t
pse
psb
pse
gR
gS 0 459 552 249 rC
318 705 :M
f0_10 sf
1.869 .187( function is not included. Visual metaphor)J
endp
%%Page: 18 18
%%BeginPageSetup
initializepage
(; page: 18 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(41)S
gR
gS 60 42 60 18 rC
70 52 :M
f3_12 sf
-.318( )A
f4_14 sf
-.326( )A
f0_7 sf
( )S
78 52 :M
f2_12 sf
( )S
60 41 :M
psb
currentpoint pse
61 42 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(T) t
54 111 /Times-Roman 0 0 0 58 T
(1) t
107 96 /Times-Roman 0 0 0 100 T
(:) t
159 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
236 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(1) t
293 96 /Symbol 0 0 0 100 T
(\256) t
412 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(D) t
pse
psb
pse
gR
gS 0 42 552 299 rC
120 54 :M
f0_10 sf
.702 .07( is similar to the metaphor described in Section 4.3.1, except that it does not include the )J
492 54 :M
f2_10 sf
-.259(blob)A
60 69 :M
f0_10 sf
.166 .017(concept, and )J
f2_10 sf
.04(entity-class.kind)A
f0_10 sf
.13 .013( is represented by )J
254 69 :M
f2_10 sf
.095(node.label-color)A
f0_10 sf
.302 .03(. Visual metaphor )J
400 56 62 19 rC
410 67 :M
f3_12 sf
-.23( )A
f4_14 sf
-.236( )A
f0_7 sf
-.134( )A
f2_12 sf
( )S
400 56 :M
psb
currentpoint pse
401 57 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Italic 0 0 0 100 T
(T) t
65 111 /Times-Roman 0 0 0 58 T
(2) t
118 96 /Times-Roman 0 0 0 100 T
(:) t
166 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
245 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(2) t
302 98 /Symbol 0 0 0 100 T
(\256) t
413 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(D) t
pse
psb
pse
gR
gS 0 42 552 299 rC
462 69 :M
f0_10 sf
.599 .06( is different)J
60 84 :M
2.676 .268(in that )J
96 84 :M
f2_10 sf
.338(entity-class.kind)A
f0_10 sf
.959 .096( is captured by )J
f2_10 sf
.378(node.color)A
f0_10 sf
(,)S
284 84 :M
1.611 .161( and that )J
f2_10 sf
.701(relationships)A
f0_10 sf
2.772 .277( are expressed as physical)J
60 99 :M
1.104 .11(arrangements of the related )J
180 99 :M
f2_10 sf
.425(nodes)A
f0_10 sf
1.341 .134( \(as described earlier\). Figure 4.6 gives examples of a simple schema)J
60 114 :M
(displayed using)S
.506 .051( each of the metaphors. This example, drawn from the Cupid simulation model \(described in)J
60 129 :M
-.009(Chapter 6\), shows a case where the outline metaphor is more compact than the graph metaphor. )A
.5 G
83 144 403 158 rC
-34 99 -1 1 -32 99 1 -34 98 @a
-34 99 -1 1 -32 99 1 -34 98 @a
0 G
-.25 -.25 102.25 225.25 .25 .25 210 153 @b
-.25 -.25 129.25 256.25 .25 .25 210 153 @b
-.25 -.25 170.25 279.25 .25 .25 210 153 @b
210 153.25 -.25 .25 215.25 283 .25 210 153 @a
210 153.25 -.25 .25 260.25 270 .25 210 153 @a
210 153.25 -.25 .25 296.25 247 .25 210 153 @a
1 G
129 184 41 9 rF
129.5 184.5 40 8 rS
138 211 45 9 rF
138.5 211.5 44 8 rS
165 233 27 9 rF
165.5 233.5 26 8 rS
197 251 40 9 rF
197.5 251.5 39 8 rS
219 229 45 9 rF
219.5 229.5 44 8 rS
246 202 36 9 rF
246.5 202.5 35 8 rS
130 192 :M
0 G
f5_9 sf
-.063(Clod Size)A
.5 G
138 218 :M
0 G
.474 .047(Bulk Density)J
.5 G
189 259 :M
0 G
(Sand Fraction)S
.5 G
222 236 :M
0 G
(Clay Fraction)S
.5 G
160 242 :M
0 G
.228 .023(Silt Fraction)J
.5 G
240 211 :M
0 G
.415 .042(Quartz Fraction)J
.5 G
90 236 :M
0 G
-.167(Real)A
.5 G
0 G
.25 lw
84.5 224.5 114.5 241.5 8 @s
118 269 :M
-.167(Real)A
.5 G
0 G
111.5 256.5 141.5 273.5 8 @s
158 290 :M
-.167(Real)A
.5 G
0 G
151.5 278.5 181.5 295.5 8 @s
209 295 :M
-.167(Real)A
.5 G
0 G
202.5 283.5 232.5 300.5 8 @s
254 281 :M
-.167(Real)A
.5 G
0 G
247.5 269.5 277.5 286.5 8 @s
290 259 :M
-.167(Real)A
.5 G
0 G
283.5 246.5 313.5 263.5 8 @s
379 160 :M
.083(Texture)A
.5 G
387 178 :M
0 G
-.063(Clod Size)A
.5 G
387 196 :M
0 G
.474 .047(Bulk Density)J
.5 G
387 268 :M
0 G
(Sand Fraction)S
.5 G
387 251 :M
0 G
(Clay Fraction)S
.5 G
387 214 :M
0 G
.228 .023(Silt Fraction)J
.5 G
387 233 :M
0 G
.415 .042(Quartz Fraction)J
.5 G
0 G
373.5 148.5 44 17 rS
464 268 :M
-.167(Real)A
.5 G
0 G
459.5 256.5 26 17 rS
464 250 :M
-.167(Real)A
.5 G
0 G
459.5 238.5 26 17 rS
464 232 :M
-.167(Real)A
.5 G
0 G
459.5 220.5 26 17 rS
464 214 :M
-.167(Real)A
.5 G
0 G
459.5 202.5 26 17 rS
464 196 :M
-.167(Real)A
.5 G
0 G
459.5 184.5 26 17 rS
464 178 :M
-.167(Real)A
.5 G
0 G
459.5 166.5 26 17 rS
1 G
188 144 233 162 8.5 @q
0 G
188.5 144.5 232.5 161.5 8 @s
195 156 :M
.083(Texture)A
.5 G
gR
gS 0 42 552 299 rC
132 326 :M
f0_10 sf
-.002(Figure 4.6. An example schema displayed using each of the two metaphors.)A
gR
1 G
gS 162 341 114 18 rC
162 341 114 18 rF
gR
0 G
gS 0 0 552 730 rC
162 342 -1 1 276 341 1 162 341 @a
162 359 -1 1 276 358 1 162 358 @a
-1 -1 163 359 1 1 162 341 @b
169 344 14 12 rC
179 351 :M
f4_14 sf
( )S
169 340 :M
psb
currentpoint pse
170 341 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
77 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(1) t
pse
psb
pse
gR
1 G
gS 275 341 133 18 rC
275 341 133 18 rF
gR
0 G
gS 0 0 552 730 rC
275 342 -1 1 408 341 1 275 341 @a
-1 -1 408 359 1 1 407 341 @b
275 359 -1 1 408 358 1 275 358 @a
282 344 24 12 rC
292 353 :M
f0_7 sf
( )S
294 353 :M
f2_12 sf
( )S
282 342 :M
psb
currentpoint pse
283 343 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Roman 0 0 0 58 T
(1) t
83 83 /Times-Roman 0 0 0 100 T
(\() t
119 83 /Times-Italic 0 0 0 100 T
(x) t
163 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
1 G
gS 162 358 114 18 rC
162 358 114 18 rF
gR
0 G
gS 0 0 552 730 rC
162 359 -1 1 276 358 1 162 358 @a
-1 -1 163 376 1 1 162 358 @b
165 361 108 12 rC
169 370 :M
f0_12 sf
-.109(node)A
gR
1 G
gS 275 358 133 18 rC
275 358 133 18 rF
gR
0 G
gS 0 0 552 730 rC
275 359 -1 1 408 358 1 275 358 @a
-1 -1 408 376 1 1 407 358 @b
278 361 127 12 rC
282 370 :M
f0_12 sf
-.058(entity-class)A
gR
1 G
gS 162 375 114 18 rC
162 375 114 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 163 393 1 1 162 375 @b
165 378 108 12 rC
169 387 :M
f0_12 sf
-.045(node.label-text)A
gR
1 G
gS 275 375 133 18 rC
275 375 133 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 408 393 1 1 407 375 @b
278 378 127 12 rC
282 387 :M
f0_12 sf
-.039(entity-class.name)A
gR
1 G
gS 162 392 114 18 rC
162 392 114 18 rF
gR
0 G
gS 0 0 552 730 rC
162 409.25 -.25 .25 275.25 409 .25 162 409 @a
-1 -1 163 410 1 1 162 392 @b
165 395 108 12 rC
169 404 :M
f0_12 sf
-.018(node.label-color )A
gR
1 G
gS 275 392 133 18 rC
275 392 133 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 408 410 1 1 407 392 @b
275 409.25 -.25 .25 407.25 409 .25 275 409 @a
278 395 127 12 rC
282 404 :M
f0_12 sf
-.061(entity-class.kind)A
gR
1 G
gS 162 409 114 18 rC
162 409 114 18 rF
gR
0 G
gS 0 0 552 730 rC
162 409.25 -.25 .25 275.25 409 .25 162 409 @a
-1 -1 163 427 1 1 162 409 @b
165 412 108 12 rC
169 421 :M
f0_12 sf
-.217(edge)A
gR
1 G
gS 275 409 133 18 rC
275 409 133 18 rF
gR
0 G
gS 0 0 552 730 rC
275 409.25 -.25 .25 407.25 409 .25 275 409 @a
-1 -1 408 427 1 1 407 409 @b
278 412 127 12 rC
282 421 :M
f0_12 sf
-.059(relationship)A
gR
1 G
gS 162 426 114 18 rC
162 426 114 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 163 444 1 1 162 426 @b
165 429 108 12 rC
169 438 :M
f0_12 sf
-.069(edge.label-text)A
gR
1 G
gS 275 426 133 18 rC
275 426 133 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 408 444 1 1 407 426 @b
278 429 127 12 rC
282 438 :M
f0_12 sf
-.037(relationship.name )A
gR
1 G
gS 162 443 114 18 rC
162 443 114 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 163 461 1 1 162 443 @b
165 446 108 12 rC
169 455 :M
f0_12 sf
-.022(edge.from-node)A
gR
1 G
gS 275 443 133 18 rC
275 443 133 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 408 461 1 1 407 443 @b
278 446 127 12 rC
282 455 :M
f0_12 sf
-.013(relationship.from-class)A
gR
1 G
gS 162 460 114 18 rC
162 460 114 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 163 478 1 1 162 460 @b
165 463 108 12 rC
169 472 :M
f0_12 sf
-.028(edge.to-node)A
gR
1 G
gS 275 460 133 18 rC
275 460 133 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 408 478 1 1 407 460 @b
278 463 127 12 rC
282 472 :M
f0_12 sf
-.015(relationship.to-class)A
gR
1 G
gS 162 477 114 18 rC
162 477 114 18 rF
gR
0 G
gS 0 0 552 730 rC
162 495 -1 1 276 494 1 162 494 @a
-1 -1 163 495 1 1 162 477 @b
165 480 108 12 rC
169 489 :M
f0_12 sf
-.041(edge.label-color)A
gR
1 G
gS 275 477 133 18 rC
275 477 133 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 408 495 1 1 407 477 @b
275 495 -1 1 408 494 1 275 494 @a
278 480 127 12 rC
282 489 :M
f0_12 sf
-.012(relationship.card-ratio)A
gR
gS 0 495 552 36 rC
217 516 :M
f0_10 sf
-.016(Table 4.7. One sample metaphor.)A
gR
1 G
gS 153 531 136 18 rC
153 531 136 18 rF
gR
0 G
gS 0 0 552 730 rC
153 532 -1 1 289 531 1 153 531 @a
153 549 -1 1 289 548 1 153 548 @a
-1 -1 154 549 1 1 153 531 @b
160 534 14 12 rC
170 541 :M
f4_14 sf
( )S
160 530 :M
psb
currentpoint pse
161 531 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
79 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(2) t
pse
psb
pse
gR
1 G
gS 288 531 128 18 rC
288 531 128 18 rF
gR
0 G
gS 0 0 552 730 rC
288 532 -1 1 416 531 1 288 531 @a
-1 -1 416 549 1 1 415 531 @b
288 549 -1 1 416 548 1 288 548 @a
295 534 24 12 rC
305 543 :M
f0_7 sf
( )S
307 543 :M
f2_12 sf
( )S
295 532 :M
psb
currentpoint pse
296 533 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Roman 0 0 0 58 T
(2) t
83 83 /Times-Roman 0 0 0 100 T
(\() t
119 83 /Times-Italic 0 0 0 100 T
(x) t
163 83 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
1 G
gS 153 548 136 18 rC
153 548 136 18 rF
gR
0 G
gS 0 0 552 730 rC
153 549 -1 1 289 548 1 153 548 @a
-1 -1 154 566 1 1 153 548 @b
156 551 130 12 rC
160 560 :M
f0_12 sf
-.109(node)A
gR
1 G
gS 288 548 128 18 rC
288 548 128 18 rF
gR
0 G
gS 0 0 552 730 rC
288 549 -1 1 416 548 1 288 548 @a
-1 -1 416 566 1 1 415 548 @b
291 551 122 12 rC
295 560 :M
f0_12 sf
-.053(entity-class )A
gR
1 G
gS 153 565 136 18 rC
153 565 136 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 154 583 1 1 153 565 @b
156 568 130 12 rC
160 577 :M
f0_12 sf
-.045(node.label-text)A
gR
1 G
gS 288 565 128 18 rC
288 565 128 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 416 583 1 1 415 565 @b
291 568 122 12 rC
295 577 :M
f0_12 sf
-.039(entity-class.name)A
gR
1 G
gS 153 582 136 18 rC
153 582 136 18 rF
gR
0 G
gS 0 0 552 730 rC
153 599.25 -.25 .25 288.25 599 .25 153 599 @a
-1 -1 154 600 1 1 153 582 @b
156 585 130 12 rC
160 594 :M
f0_12 sf
-.109(node.color)A
gR
1 G
gS 288 582 128 18 rC
288 582 128 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 416 600 1 1 415 582 @b
288 599.25 -.25 .25 415.25 599 .25 288 599 @a
291 585 122 12 rC
295 594 :M
f0_12 sf
-.061(entity-class.kind)A
gR
1 G
gS 153 599 136 18 rC
153 599 136 18 rF
gR
0 G
gS 0 0 552 730 rC
153 599.25 -.25 .25 288.25 599 .25 153 599 @a
-1 -1 154 617 1 1 153 599 @b
156 602 130 12 rC
160 611 :M
f0_12 sf
-.096(arrangement)A
gR
1 G
gS 288 599 128 18 rC
288 599 128 18 rF
gR
0 G
gS 0 0 552 730 rC
288 599.25 -.25 .25 415.25 599 .25 288 599 @a
-1 -1 416 617 1 1 415 599 @b
291 602 122 12 rC
295 611 :M
f0_12 sf
-.059(relationship)A
gR
1 G
gS 153 616 136 18 rC
153 616 136 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 154 634 1 1 153 616 @b
156 619 130 12 rC
160 628 :M
f0_12 sf
-.013(arrangement.label-text)A
gR
1 G
gS 288 616 128 18 rC
288 616 128 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 416 634 1 1 415 616 @b
291 619 122 12 rC
295 628 :M
f0_12 sf
-.04(relationship.name)A
gR
1 G
gS 153 633 136 18 rC
153 633 136 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 154 651 1 1 153 633 @b
156 636 130 12 rC
160 645 :M
f0_12 sf
-.012(arrangement.parent-node)A
gR
1 G
gS 288 633 128 18 rC
288 633 128 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 416 651 1 1 415 633 @b
291 636 122 12 rC
295 645 :M
f0_12 sf
-.013(relationship.from-class)A
gR
1 G
gS 153 650 136 18 rC
153 650 136 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 154 668 1 1 153 650 @b
156 653 130 12 rC
160 662 :M
f0_12 sf
-.013(arrangement.child-node)A
gR
1 G
gS 288 650 128 18 rC
288 650 128 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 416 668 1 1 415 650 @b
291 653 122 12 rC
295 662 :M
f0_12 sf
-.015(relationship.to-class)A
gR
1 G
gS 153 667 136 18 rC
153 667 136 18 rF
gR
0 G
gS 0 0 552 730 rC
153 685 -1 1 289 684 1 153 684 @a
-1 -1 154 685 1 1 153 667 @b
156 670 130 12 rC
160 679 :M
f0_12 sf
-.042(arrangement.label-color)A
gR
1 G
gS 288 667 128 18 rC
288 667 128 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 416 685 1 1 415 667 @b
288 685 -1 1 416 684 1 288 684 @a
291 670 122 12 rC
295 679 :M
f0_12 sf
-.012(relationship.card-ratio)A
gR
gS 0 685 552 24 rC
209 706 :M
f0_10 sf
-.017(Table 4.8. Another sample metaphor.)A
endp
%%Page: 19 19
%%BeginPageSetup
initializepage
(; page: 19 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(42)S
gR
gS 0 47 552 658 rC
60 71 :M
f1_12 sf
-.016(4.5.2 Combining Visual Models and Metaphors)A
78 101 :M
f0_10 sf
-.016(In order to use different metaphors for different parts of)A
301 101 :M
.596 .06( a schema, the visual models associated with these)J
60 116 :M
.26 .026(metaphors must be combined into a single model. In addition, the metaphors themselves must be combined to)J
60 131 :M
.507 .051(form a unified metaphor, mapping from the combined visual model to the data model. Combining the visual)J
60 146 :M
1.78 .178(models ensures that the concepts from different models may be used together, and that the metaphors)J
60 161 :M
-.02(themselves may be combined.)A
78 176 :M
-.006(There are several abstractions that could be used to model the combination of visual models and)A
463 176 :M
.175 .017( metaphors,)J
60 191 :M
.355 .036(any of which results in a valid, unambiguous, and usable metaphor and schema mappings. These abstractions)J
60 206 :M
.405 .04(differ in the level of mixing that they permit of the visual models and metaphor functions. In this subsection,)J
60 221 :M
.143 .014(we discuss an abstraction that allows mixing at all levels. The subsequent subsections describe correctness and)J
60 236 :M
(quality issues involved in mixing metaphors based on that abstraction.)S
78 251 :M
4.447 .445(For the visual models )J
195 238 175 19 rC
205 249 :M
f4_14 sf
( )S
195 238 :M
psb
currentpoint pse
196 239 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
77 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(1) t
135 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(=) t
220 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(<) t
306 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
367 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
416 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(1) t
447 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(,) t
479 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
557 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
606 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(1) t
637 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(,) t
663 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
737 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
786 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(1) t
817 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(,) t
843 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
927 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
976 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(1) t
1007 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(,) t
1033 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
1119 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
1168 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(1) t
1199 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(,) t
1225 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
1291 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
1340 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(1) t
1391 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(>) t
pse
psb
pse
gR
gS 0 47 552 658 rC
370 251 :M
f0_10 sf
5.224 .522(, and )J
406 238 58 19 rC
416 249 :M
f4_14 sf
( )S
406 238 :M
psb
currentpoint pse
407 239 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
79 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(2) t
137 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(=) t
222 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(<) t
308 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
369 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
420 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(2) t
451 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(,) t
pse
psb
pse
gR
gS 464 238 24 19 rC
474 249 :M
f4_14 sf
( )S
464 238 :M
psb
currentpoint pse
465 239 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
6 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
135 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(2) t
166 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(,) t
pse
psb
pse
gR
gS 488 238 22 19 rC
498 249 :M
f4_14 sf
( )S
488 238 :M
psb
currentpoint pse
489 239 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
74 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
125 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(2) t
156 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(,) t
pse
psb
pse
gR
gS 60 253 24 19 rC
70 264 :M
f4_14 sf
( )S
60 253 :M
psb
currentpoint pse
61 254 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
135 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(2) t
166 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(,) t
pse
psb
pse
gR
gS 84 253 51 19 rC
94 264 :M
f4_14 sf
( )S
84 253 :M
psb
currentpoint pse
85 254 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
86 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
137 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(2) t
168 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(,) t
194 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
260 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
311 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(2) t
362 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(>) t
pse
psb
pse
gR
gS 0 47 552 658 rC
135 266 :M
f0_10 sf
.487 .049(, consider their combination )J
254 266 :M
f4_14 sf
(G)S
263 266 :M
f0_10 sf
.653 .065( = < )J
285 253 13 19 rC
295 264 :M
f4_14 sf
( )S
285 253 :M
psb
currentpoint pse
286 254 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 47 552 658 rC
298 266 :M
f0_10 sf
(,)S
301 253 16 19 rC
311 264 :M
f4_14 sf
( )S
301 253 :M
psb
currentpoint pse
302 254 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
6 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 47 552 658 rC
317 266 :M
f0_10 sf
.909 .091(, )J
323 253 15 19 rC
333 264 :M
f4_14 sf
( )S
323 253 :M
psb
currentpoint pse
324 254 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
74 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 47 552 658 rC
338 266 :M
f0_10 sf
.909 .091(, )J
344 253 16 19 rC
354 264 :M
f4_14 sf
( )S
344 253 :M
psb
currentpoint pse
345 254 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 47 552 658 rC
360 266 :M
f0_10 sf
.909 .091(, )J
366 253 16 19 rC
376 264 :M
f4_14 sf
( )S
366 253 :M
psb
currentpoint pse
367 254 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
86 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 47 552 658 rC
382 266 :M
f0_10 sf
.909 .091(, )J
388 253 14 19 rC
398 264 :M
f4_14 sf
( )S
388 253 :M
psb
currentpoint pse
389 254 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
pse
psb
pse
gR
gS 0 47 552 658 rC
402 266 :M
f0_10 sf
.665 .066( >. By definition, for any)J
60 281 :M
-.085(concept )A
94 270 8 16 rC
104 281 :M
f2_12 sf
( )S
94 270 :M
psb
currentpoint pse
95 271 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(P) t
pse
psb
pse
gR
gS 0 47 552 658 rC
102 281 :M
f0_10 sf
-.018( that is common to both visual models, the equality )A
309 268 81 19 rC
319 279 :M
f2_12 sf
-.333( )A
f0_6 sf
( )S
324 279 :M
f4_14 sf
( )S
309 268 :M
psb
currentpoint pse
310 269 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
133 132 /Times-Roman 0 0 0 50 T
(1) t
158 96 /Times-Roman 0 0 0 100 T
(\() t
191 96 /Times-Italic 0 0 0 100 T
(P) t
251 96 /Times-Roman 0 0 0 100 T
(\)) t
308 96 /Times-Roman 0 0 0 100 T
(=) t
388 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
472 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
521 132 /Times-Roman 0 0 0 50 T
(2) t
546 96 /Times-Roman 0 0 0 100 T
(\() t
579 96 /Times-Italic 0 0 0 100 T
(P) t
639 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 47 552 658 rC
390 281 :M
f0_10 sf
.602 .06( holds, i.e., the same concept)J
60 296 :M
-.013(has the same attributes in all visual models that include it. )A
294 296 :M
.585 .059( The elements of the visual models are combined as)J
60 311 :M
-.11(follows:)A
78 328 81 19 rC
88 339 :M
f3_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
78 328 :M
psb
currentpoint pse
79 329 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
62 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
153 96 /Times-Roman 0 0 0 100 T
(=) t
258 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
328 124 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
377 139 /ZapfChancery-MediumItalic 0 0 0 58 T
(1) t
427 96 /Symbol 0 0 0 100 T
(\310) t
528 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
598 124 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
649 139 /ZapfChancery-MediumItalic 0 0 0 58 T
(2) t
pse
psb
pse
gR
gS 78 343 87 19 rC
88 354 :M
f3_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
78 343 :M
psb
currentpoint pse
79 344 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
6 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
84 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
175 96 /Times-Roman 0 0 0 100 T
(=) t
285 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
361 123 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
410 138 /ZapfChancery-MediumItalic 0 0 0 58 T
(1) t
460 96 /Symbol 0 0 0 100 T
(\310) t
566 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
642 123 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
693 138 /ZapfChancery-MediumItalic 0 0 0 58 T
(2) t
pse
psb
pse
gR
gS 78 358 86 19 rC
88 369 :M
f3_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
78 358 :M
psb
currentpoint pse
79 359 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
74 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
165 96 /Times-Roman 0 0 0 100 T
(=) t
269 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
353 120 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
402 135 /ZapfChancery-MediumItalic 0 0 0 58 T
(1) t
452 96 /Symbol 0 0 0 100 T
(\310) t
552 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(V) t
636 120 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
687 135 /ZapfChancery-MediumItalic 0 0 0 58 T
(2) t
pse
psb
pse
gR
gS 78 373 81 19 rC
88 384 :M
f3_12 sf
( )S
f0_12 sf
( )S
f4_14 sf
( )S
78 373 :M
psb
currentpoint pse
79 374 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
66 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
157 96 /Times-Roman 0 0 0 100 T
(=) t
261 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
327 124 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
376 139 /ZapfChancery-MediumItalic 0 0 0 58 T
(1) t
426 96 /Symbol 0 0 0 100 T
(\310) t
526 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(C) t
592 124 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
643 139 /ZapfChancery-MediumItalic 0 0 0 58 T
(2) t
pse
psb
pse
gR
gS 0 47 552 658 rC
60 416 :M
f0_10 sf
-.002(Note that, based on the naming convention established in Definition 1, the above equations imply that:)A
78 433 176 19 rC
88 444 :M
f0_12 sf
-.34( )A
f4_12 sf
( )S
94 444 :M
f2_12 sf
( )S
f3_12 sf
( )S
78 433 :M
psb
currentpoint pse
79 434 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Symbol 0 0 0 100 T
(") t
71 96 /Times-Italic 0 0 0 100 T
(P) t
155 96 /Symbol 0 0 0 100 T
(\316) t
248 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(P) t
309 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
355 96 /Times-Roman 0 0 0 100 T
(,) t
404 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
488 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
534 96 /Times-Roman 0 0 0 100 T
(\() t
567 96 /Times-Italic 0 0 0 100 T
(P) t
627 96 /Times-Roman 0 0 0 100 T
(\)) t
684 96 /Times-Roman 0 0 0 100 T
(=) t
764 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
848 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
897 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(1) t
923 96 /Times-Roman 0 0 0 100 T
(\() t
956 96 /Times-Italic 0 0 0 100 T
(P) t
1016 96 /Times-Roman 0 0 0 100 T
(\)) t
1073 96 /Symbol 0 0 0 100 T
(\310) t
1173 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(Q) t
1257 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
1308 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(2) t
1334 96 /Times-Roman 0 0 0 100 T
(\() t
1367 96 /Times-Italic 0 0 0 100 T
(P) t
1427 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 78 448 221 19 rC
88 459 :M
f4_12 sf
( )S
91 459 :M
f0_12 sf
( )S
f2_12 sf
( )S
f3_12 sf
( )S
78 448 :M
psb
currentpoint pse
79 449 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Symbol 0 0 0 100 T
(") t
71 96 /Times-Italic 0 0 0 100 T
(P) t
131 96 /Times-Roman 0 0 0 100 T
(.) t
159 96 /Times-Italic 0 0 0 100 T
(A) t
243 96 /Symbol 0 0 0 100 T
(\316) t
341 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(A) t
419 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
465 96 /Times-Roman 0 0 0 100 T
(,) t
514 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
600 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
646 96 /Times-Roman 0 0 0 100 T
(\() t
679 96 /Times-Italic 0 0 0 100 T
(P) t
739 96 /Times-Roman 0 0 0 100 T
(.) t
767 96 /Times-Italic 0 0 0 100 T
(A) t
827 96 /Times-Roman 0 0 0 100 T
(\)) t
884 96 /Times-Roman 0 0 0 100 T
(=) t
964 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
1050 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
1099 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(1) t
1125 96 /Times-Roman 0 0 0 100 T
(\() t
1158 96 /Times-Italic 0 0 0 100 T
(P) t
1218 96 /Times-Roman 0 0 0 100 T
(.) t
1246 96 /Times-Italic 0 0 0 100 T
(A) t
1306 96 /Times-Roman 0 0 0 100 T
(\)) t
1363 96 /Symbol 0 0 0 100 T
(\310) t
1463 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
1549 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(G) t
1600 134 /ZapfChancery-MediumItalic 0 0 0 58 T
(2) t
1626 96 /Times-Roman 0 0 0 100 T
(\() t
1659 96 /Times-Italic 0 0 0 100 T
(P) t
1719 96 /Times-Roman 0 0 0 100 T
(.) t
1747 96 /Times-Italic 0 0 0 100 T
(A) t
1807 96 /Times-Roman 0 0 0 100 T
(\)) t
pse
psb
pse
gR
gS 0 47 552 658 rC
78 491 :M
f0_10 sf
-.019(Given a combined visual model, two metaphors )A
272 480 93 16 rC
282 491 :M
f3_12 sf
-.474( )A
f0_7 sf
( )S
287 491 :M
f2_12 sf
( )S
272 480 :M
psb
currentpoint pse
273 481 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Roman 0 0 0 58 T
(1) t
107 83 /Times-Roman 0 0 0 100 T
(=) t
187 83 /Times-Italic 0 0 0 100 T
(T) t
245 98 /Times-Italic 0 0 0 58 T
(p) t
274 98 /Times-Roman 0 0 0 58 T
(1) t
327 83 /Symbol 0 0 0 100 T
(\310) t
427 83 /Times-Italic 0 0 0 100 T
(T) t
481 98 /Times-Italic 0 0 0 58 T
(a) t
510 98 /Times-Roman 0 0 0 58 T
(1) t
563 83 /Symbol 0 0 0 100 T
(\310) t
663 83 /Times-Italic 0 0 0 100 T
(T) t
717 98 /Times-Italic 0 0 0 58 T
(v) t
743 98 /Times-Roman 0 0 0 58 T
(1) t
pse
psb
pse
gR
gS 0 47 552 658 rC
365 491 :M
f0_10 sf
-.11( and )A
384 480 93 16 rC
394 491 :M
f3_12 sf
-.474( )A
f0_7 sf
( )S
399 491 :M
f2_12 sf
( )S
384 480 :M
psb
currentpoint pse
385 481 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Roman 0 0 0 58 T
(2) t
107 83 /Times-Roman 0 0 0 100 T
(=) t
187 83 /Times-Italic 0 0 0 100 T
(T) t
245 98 /Times-Italic 0 0 0 58 T
(p) t
274 98 /Times-Roman 0 0 0 58 T
(2) t
327 83 /Symbol 0 0 0 100 T
(\310) t
427 83 /Times-Italic 0 0 0 100 T
(T) t
481 98 /Times-Italic 0 0 0 58 T
(a) t
510 98 /Times-Roman 0 0 0 58 T
(2) t
563 83 /Symbol 0 0 0 100 T
(\310) t
663 83 /Times-Italic 0 0 0 100 T
(T) t
717 98 /Times-Italic 0 0 0 58 T
(v) t
743 98 /Times-Roman 0 0 0 58 T
(2) t
pse
psb
pse
gR
gS 0 47 552 658 rC
477 491 :M
f0_10 sf
-.239( may)A
497 491 :M
.051 .005( be)J
60 506 :M
-.005(combined to form a unified metaphor )A
212 495 80 16 rC
222 506 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
212 495 :M
psb
currentpoint pse
213 496 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
87 83 /Times-Roman 0 0 0 100 T
(=) t
167 83 /Times-Italic 0 0 0 100 T
(T) t
225 98 /Times-Italic 0 0 0 58 T
(p) t
278 83 /Symbol 0 0 0 100 T
(\310) t
378 83 /Times-Italic 0 0 0 100 T
(T) t
432 98 /Times-Italic 0 0 0 58 T
(a) t
485 83 /Symbol 0 0 0 100 T
(\310) t
585 83 /Times-Italic 0 0 0 100 T
(T) t
639 98 /Times-Italic 0 0 0 58 T
(v) t
pse
psb
pse
gR
gS 0 47 552 658 rC
292 506 :M
f0_10 sf
-.117( where:)A
78 525 73 16 rC
88 536 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
78 525 :M
psb
currentpoint pse
79 526 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
58 98 /Times-Italic 0 0 0 58 T
(p) t
135 83 /Times-Roman 0 0 0 100 T
(=) t
239 83 /Times-Italic 0 0 0 100 T
(T) t
309 98 /Times-Italic 0 0 0 58 T
(p) t
336 113 /Times-Roman 0 0 0 50 T
(1) t
385 83 /Symbol 0 0 0 100 T
(\310) t
485 83 /Times-Italic 0 0 0 100 T
(T) t
555 98 /Times-Italic 0 0 0 58 T
(p) t
582 113 /Times-Roman 0 0 0 50 T
(2) t
pse
psb
pse
gR
gS 78 540 73 16 rC
88 551 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
78 540 :M
psb
currentpoint pse
79 541 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Italic 0 0 0 58 T
(a) t
131 83 /Times-Roman 0 0 0 100 T
(=) t
235 83 /Times-Italic 0 0 0 100 T
(T) t
301 98 /Times-Italic 0 0 0 58 T
(a) t
332 113 /Times-Roman 0 0 0 50 T
(1) t
381 83 /Symbol 0 0 0 100 T
(\310) t
481 83 /Times-Italic 0 0 0 100 T
(T) t
547 98 /Times-Italic 0 0 0 58 T
(a) t
578 113 /Times-Roman 0 0 0 50 T
(2) t
pse
psb
pse
gR
gS 78 555 71 16 rC
88 566 :M
f3_12 sf
( )S
f0_12 sf
( )S
f2_12 sf
( )S
78 555 :M
psb
currentpoint pse
79 556 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Italic 0 0 0 58 T
(v) t
128 83 /Times-Roman 0 0 0 100 T
(=) t
232 83 /Times-Italic 0 0 0 100 T
(T) t
298 98 /Times-Italic 0 0 0 58 T
(v) t
323 113 /Times-Roman 0 0 0 50 T
(1) t
372 83 /Symbol 0 0 0 100 T
(\310) t
472 83 /Times-Italic 0 0 0 100 T
(T) t
538 98 /Times-Italic 0 0 0 58 T
(v) t
563 113 /Times-Roman 0 0 0 50 T
(2) t
pse
psb
pse
gR
gS 0 47 552 658 rC
60 596 :M
f1_12 sf
-.023(4.5.3 Correct and Good Mixing of Metaphors)A
78 626 :M
f0_10 sf
1.193 .119(The result of combining two metaphors using the process shown in the previous section must)J
479 626 :M
1.411 .141( satisfy)J
60 641 :M
-.004(Definition 3 in order for it to be a metaphor itself. Assume that )A
316 630 10 16 rC
326 641 :M
f0_7 sf
( )S
328 641 :M
f2_12 sf
( )S
316 630 :M
psb
currentpoint pse
317 631 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Roman 0 0 0 58 T
(1) t
pse
psb
pse
gR
gS 0 47 552 658 rC
326 641 :M
f0_10 sf
-.11( and )A
345 630 10 16 rC
355 641 :M
f0_7 sf
( )S
357 641 :M
f2_12 sf
( )S
345 630 :M
psb
currentpoint pse
346 631 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Roman 0 0 0 58 T
(2) t
pse
psb
pse
gR
gS 0 47 552 658 rC
355 641 :M
f0_10 sf
-.235( are)A
370 641 :M
.51 .051( correct metaphors with respect to)J
60 656 :M
-.008(either viewing or updating data schemas. Then, )A
254 645 10 16 rC
264 656 :M
f0_7 sf
( )S
266 656 :M
f2_12 sf
( )S
254 645 :M
psb
currentpoint pse
255 646 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Roman 0 0 0 58 T
(1) t
pse
psb
pse
gR
gS 0 47 552 658 rC
264 656 :M
f0_10 sf
-.11( and )A
283 645 10 16 rC
293 656 :M
f0_7 sf
( )S
295 656 :M
f2_12 sf
( )S
283 645 :M
psb
currentpoint pse
284 646 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Roman 0 0 0 58 T
(2) t
pse
psb
pse
gR
gS 0 47 552 658 rC
293 656 :M
f0_10 sf
( are onto functions with possible)S
.076 .008( additional properties)J
60 671 :M
-.008(of totality and/or 1-1ness. When taking the union of )A
272 660 14 16 rC
282 671 :M
f0_7 sf
( )S
284 671 :M
f2_12 sf
( )S
272 660 :M
psb
currentpoint pse
273 661 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
56 98 /Times-Italic 0 0 0 58 T
(x) t
82 98 /Times-Roman 0 0 0 58 T
(1) t
pse
psb
pse
gR
gS 0 47 552 658 rC
286 671 :M
f0_10 sf
-.11( and )A
305 660 14 16 rC
315 671 :M
f0_7 sf
( )S
317 671 :M
f2_12 sf
( )S
305 660 :M
psb
currentpoint pse
306 661 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
56 98 /Times-Italic 0 0 0 58 T
(x) t
82 98 /Times-Roman 0 0 0 58 T
(2) t
pse
psb
pse
gR
gS 0 47 552 658 rC
319 671 :M
f0_10 sf
-.197( \(for )A
339 660 56 16 rC
349 671 :M
f0_12 sf
( )S
f3_12 sf
( )S
f2_12 sf
( )S
339 660 :M
psb
currentpoint pse
340 661 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
3 83 /Times-Italic 0 0 0 100 T
(x) t
71 83 /Symbol 0 0 0 100 T
(\316) t
166 83 /Times-Roman 0 0 0 100 T
({) t
222 83 /Times-Italic 0 0 0 100 T
(p) t
272 83 /Times-Roman 0 0 0 100 T
(,) t
297 83 /Times-Italic 0 0 0 100 T
(a) t
347 83 /Times-Roman 0 0 0 100 T
(,) t
372 83 /Times-Italic 0 0 0 100 T
(v) t
416 83 /Times-Roman 0 0 0 100 T
(}) t
pse
psb
pse
gR
gS 0 47 552 658 rC
395 671 :M
f0_10 sf
-.828(\),)A
401 671 :M
.459 .046( totality and onto-ness can)J
60 686 :M
-.007(never be lost. 1-1ness may be lost when unioning, but it is unrelated to correctness and only)A
430 686 :M
.452 .045( affects redundancy)J
60 701 :M
(and choice in a metaphor \(Section 4.3.2\), so it does not present a problem. Functionality, however,)S
.049 .005( is necessary)J
endp
%%Page: 20 20
%%BeginPageSetup
initializepage
(; page: 20 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(43)S
gR
gS 0 38 552 315 rC
60 50 :M
f0_10 sf
.558 .056(for correctness and may be lost when unioning. In that case, )J
316 41 11 10 rC
327 52 :M
f2_12 sf
( )S
316 41 :M
psb
currentpoint pse
317 42 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 33 /Times-Italic 0 0 0 50 T
(T) t
pse
psb
pse
gR
gS 0 38 552 315 rC
327 50 :M
f0_10 sf
.627 .063( is not a correct metaphor, implying that the)J
60 65 :M
(original metaphors are not combinable. To correctly)S
.087 .009( combine )J
312 54 10 16 rC
322 65 :M
f0_7 sf
( )S
324 65 :M
f2_12 sf
( )S
312 54 :M
psb
currentpoint pse
313 55 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Roman 0 0 0 58 T
(1) t
pse
psb
pse
gR
gS 0 38 552 315 rC
322 65 :M
f0_10 sf
.651 .065( and )J
343 54 10 16 rC
353 65 :M
f0_7 sf
( )S
355 65 :M
f2_12 sf
( )S
343 54 :M
psb
currentpoint pse
344 55 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Roman 0 0 0 58 T
(2) t
pse
psb
pse
gR
gS 0 38 552 315 rC
353 65 :M
f0_10 sf
.621 .062(, the resulting )J
413 54 11 16 rC
423 65 :M
f2_12 sf
( )S
413 54 :M
psb
currentpoint pse
414 55 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
58 98 /Times-Italic 0 0 0 58 T
(p) t
pse
psb
pse
gR
gS 0 38 552 315 rC
424 65 :M
f0_10 sf
.909 .091(, )J
430 54 10 16 rC
440 65 :M
f2_12 sf
( )S
430 54 :M
psb
currentpoint pse
431 55 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Italic 0 0 0 58 T
(a) t
pse
psb
pse
gR
gS 0 38 552 315 rC
440 65 :M
f0_10 sf
.424 .042(, and )J
464 54 10 16 rC
474 65 :M
f2_12 sf
( )S
464 54 :M
psb
currentpoint pse
465 55 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 83 /Times-Italic 0 0 0 100 T
(T) t
54 98 /Times-Italic 0 0 0 58 T
(v) t
pse
psb
pse
gR
gS 0 38 552 315 rC
474 65 :M
f0_10 sf
.413 .041( must be)J
60 80 :M
-.079(functions.)A
78 95 :M
.42 .042(The combined metaphor must)J
201 95 :M
1.282 .128( also satisfy the criteria from Section 4.4.1. In addition, the new set of)J
60 110 :M
1.953 .195(constraints established by unioning the constraints of the two original visual models must contain no)J
60 125 :M
-.004(contradictions and should not exclude any visual schema that was valid in the two original visual models. If any)A
60 140 :M
-.002(of the above does not hold, then the original metaphors are not combinable.)A
78 155 :M
-.023(We should emphasize once again that)A
229 155 :M
.578 .058( one could use a different abstraction from that described in Section)J
60 170 :M
(4.5.2 to combine metaphors. Such an abstraction would possibly)S
.22 .022( allow different pairs of metaphors to become)J
60 185 :M
-.021(combinable. We have chosen the above)A
221 185 :M
.563 .056( abstraction for its simplicity and because it captures several desirable)J
60 200 :M
-.03(metaphor combinations.)A
60 230 :M
f1_12 sf
-.029(4.5.4 Example Metaphor Combination)A
78 260 :M
f0_10 sf
.018 .002(Consider the example metaphors from the previous section. When the two are combined, the metaphor will)J
60 275 :M
.768 .077(appear as shown in Table 4.9. Where both original metaphors are the same, such as the mapping of )J
484 275 :M
f2_10 sf
-.09(entity-)A
60 290 :M
-.249(class)A
80 290 :M
f0_10 sf
.065 .007( or )J
f2_10 sf
.051(entity-class.name)A
165 290 :M
f0_10 sf
.526 .053(, the combined metaphor is)J
278 290 :M
1.262 .126( the same. Where the original metaphors diverge, the)J
60 305 :M
1.412 .141(combined metaphor either offers choice \(as in the case of )J
f2_10 sf
.387(relationships)A
f0_10 sf
1.288 .129(\) or redundancy \(as with )J
f2_10 sf
.41(entity-)A
60 320 :M
-.079(class.kind)A
100 320 :M
f0_10 sf
-.828(\).)A
78 335 :M
-.011(The unified visual model undergoes similar changes, as shown in Table 4.10.)A
gR
1 G
gS 146 353 144 18 rC
146 353 144 18 rF
gR
0 G
gS 0 0 552 730 rC
146 354 -1 1 290 353 1 146 353 @a
146 371 -1 1 290 370 1 146 370 @a
-1 -1 147 371 1 1 146 353 @b
153 356 9 12 rC
164 365 :M
f2_12 sf
( )S
153 354 :M
psb
currentpoint pse
154 355 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
1 42 /Times-Italic 0 0 0 50 T
(x) t
pse
psb
pse
gR
1 G
gS 289 353 135 18 rC
289 353 135 18 rF
gR
0 G
gS 0 0 552 730 rC
289 354 -1 1 424 353 1 289 353 @a
-1 -1 424 371 1 1 423 353 @b
289 371 -1 1 424 370 1 289 370 @a
296 356 25 12 rC
307 365 :M
f0_12 sf
( )S
f2_12 sf
( )S
296 354 :M
psb
currentpoint pse
297 355 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(T) t
32 42 /Times-Roman 0 0 0 50 T
(\() t
50 42 /Times-Italic 0 0 0 50 T
(x) t
72 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 146 370 144 17 rC
146 370 144 17 rF
gR
0 G
gS 0 0 552 730 rC
146 371 -1 1 290 370 1 146 370 @a
-1 -1 147 387 1 1 146 370 @b
149 373 138 11 rC
153 381 :M
f0_12 sf
-.109(node)A
gR
1 G
gS 289 370 135 17 rC
289 370 135 17 rF
gR
0 G
gS 0 0 552 730 rC
289 371 -1 1 424 370 1 289 370 @a
-1 -1 424 387 1 1 423 370 @b
292 373 129 11 rC
296 381 :M
f0_12 sf
-.058(entity-class)A
gR
1 G
gS 146 386 144 17 rC
146 386 144 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 147 403 1 1 146 386 @b
149 389 138 11 rC
153 397 :M
f0_12 sf
-.045(node.label-text)A
gR
1 G
gS 289 386 135 17 rC
289 386 135 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 424 403 1 1 423 386 @b
292 389 129 11 rC
296 397 :M
f0_12 sf
-.039(entity-class.name)A
gR
1 G
gS 146 402 144 17 rC
146 402 144 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 147 419 1 1 146 402 @b
149 405 138 11 rC
153 413 :M
f0_12 sf
-.019(node.label-color)A
gR
1 G
gS 289 402 135 17 rC
289 402 135 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 424 419 1 1 423 402 @b
292 405 129 11 rC
296 413 :M
f0_12 sf
-.061(entity-class.kind)A
gR
1 G
gS 146 418 144 17 rC
146 418 144 17 rF
gR
0 G
gS 0 0 552 730 rC
146 434.25 -.25 .25 289.25 434 .25 146 434 @a
-1 -1 147 435 1 1 146 418 @b
149 421 138 11 rC
153 429 :M
f0_12 sf
-.109(node.color)A
gR
1 G
gS 289 418 135 17 rC
289 418 135 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 424 435 1 1 423 418 @b
289 434.25 -.25 .25 423.25 434 .25 289 434 @a
292 421 129 11 rC
296 429 :M
f0_12 sf
-.061(entity-class.kind)A
gR
1 G
gS 146 434 144 17 rC
146 434 144 17 rF
gR
0 G
gS 0 0 552 730 rC
146 434.25 -.25 .25 289.25 434 .25 146 434 @a
-1 -1 147 451 1 1 146 434 @b
149 437 138 11 rC
153 445 :M
f0_12 sf
-.217(edge)A
gR
1 G
gS 289 434 135 17 rC
289 434 135 17 rF
gR
0 G
gS 0 0 552 730 rC
289 434.25 -.25 .25 423.25 434 .25 289 434 @a
-1 -1 424 451 1 1 423 434 @b
292 437 129 11 rC
296 445 :M
f0_12 sf
-.059(relationship)A
gR
1 G
gS 146 450 144 17 rC
146 450 144 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 147 467 1 1 146 450 @b
149 453 138 11 rC
153 461 :M
f0_12 sf
-.096(arrangement)A
gR
1 G
gS 289 450 135 17 rC
289 450 135 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 424 467 1 1 423 450 @b
292 453 129 11 rC
296 461 :M
f0_12 sf
-.059(relationship)A
gR
1 G
gS 146 466 144 17 rC
146 466 144 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 147 483 1 1 146 466 @b
149 469 138 11 rC
153 477 :M
f0_12 sf
-.069(edge.label-text)A
gR
1 G
gS 289 466 135 17 rC
289 466 135 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 424 483 1 1 423 466 @b
292 469 129 11 rC
296 477 :M
f0_12 sf
-.04(relationship.name)A
gR
1 G
gS 146 482 144 17 rC
146 482 144 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 147 499 1 1 146 482 @b
149 485 138 11 rC
153 493 :M
f0_12 sf
-.013(arrangement.label-text)A
gR
1 G
gS 289 482 135 17 rC
289 482 135 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 424 499 1 1 423 482 @b
292 485 129 11 rC
296 493 :M
f0_12 sf
-.04(relationship.name)A
gR
1 G
gS 146 498 144 17 rC
146 498 144 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 147 515 1 1 146 498 @b
149 501 138 11 rC
153 509 :M
f0_12 sf
-.022(edge.from-node)A
gR
1 G
gS 289 498 135 17 rC
289 498 135 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 424 515 1 1 423 498 @b
292 501 129 11 rC
296 509 :M
f0_12 sf
-.013(relationship.from-class)A
gR
1 G
gS 146 514 144 17 rC
146 514 144 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 147 531 1 1 146 514 @b
149 517 138 11 rC
153 525 :M
f0_12 sf
-.011(arrangement.parent-node )A
gR
1 G
gS 289 514 135 17 rC
289 514 135 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 424 531 1 1 423 514 @b
292 517 129 11 rC
296 525 :M
f0_12 sf
-.013(relationship.from-class)A
gR
1 G
gS 146 530 144 17 rC
146 530 144 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 147 547 1 1 146 530 @b
149 533 138 11 rC
153 541 :M
f0_12 sf
-.028(edge.to-node)A
gR
1 G
gS 289 530 135 17 rC
289 530 135 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 424 547 1 1 423 530 @b
292 533 129 11 rC
296 541 :M
f0_12 sf
-.015(relationship.to-class)A
gR
1 G
gS 146 546 144 17 rC
146 546 144 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 147 563 1 1 146 546 @b
149 549 138 11 rC
153 557 :M
f0_12 sf
-.013(arrangement.child-node)A
gR
1 G
gS 289 546 135 17 rC
289 546 135 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 424 563 1 1 423 546 @b
292 549 129 11 rC
296 557 :M
f0_12 sf
-.015(relationship.to-class)A
gR
1 G
gS 146 562 144 17 rC
146 562 144 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 147 579 1 1 146 562 @b
149 565 138 11 rC
153 573 :M
f0_12 sf
-.041(edge.label-color)A
gR
1 G
gS 289 562 135 17 rC
289 562 135 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 424 579 1 1 423 562 @b
292 565 129 11 rC
296 573 :M
f0_12 sf
-.012(relationship.card-ratio)A
gR
1 G
gS 146 578 144 17 rC
146 578 144 17 rF
gR
0 G
gS 0 0 552 730 rC
146 595 -1 1 290 594 1 146 594 @a
-1 -1 147 595 1 1 146 578 @b
149 581 138 11 rC
153 589 :M
f0_12 sf
-.042(arrangement.label-color)A
gR
1 G
gS 289 578 135 17 rC
289 578 135 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 424 595 1 1 423 578 @b
289 595 -1 1 424 594 1 289 594 @a
292 581 129 11 rC
296 589 :M
f0_12 sf
-.012(relationship.card-ratio)A
gR
gS 0 595 552 48 rC
191 616 :M
f0_10 sf
-.015(Table 4.9. A Combination of Two Metaphors.)A
endp
%%Page: 21 21
%%BeginPageSetup
initializepage
(; page: 21 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(44)S
gR
1 G
gS 86 49 123 26 rC
86 49 123 26 rF
gR
0 G
gS 0 0 552 730 rC
86 50 -1 1 209 49 1 86 49 @a
86 75 -1 1 209 74 1 86 74 @a
-1 -1 87 75 1 1 86 49 @b
89 52 117 20 rC
93 65 :M
f0_12 sf
-.141(Concept )A
136 54 19 16 rC
147 65 :M
f2_12 sf
( )S
f0_12 sf
( )S
136 54 :M
psb
currentpoint pse
137 55 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
(\() t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 208 49 108 26 rC
208 49 108 26 rF
gR
0 G
gS 0 0 552 730 rC
208 50 -1 1 316 49 1 208 49 @a
208 75 -1 1 316 74 1 208 74 @a
211 52 102 20 rC
215 65 :M
f0_12 sf
-.035(Attribute )A
261 54 30 16 rC
272 65 :M
f2_12 sf
( )S
f0_12 sf
( )S
261 54 :M
psb
currentpoint pse
262 55 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
(\() t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(.) t
62 42 /Times-Italic 0 0 0 50 T
(A) t
93 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 315 49 168 26 rC
315 49 168 26 rF
gR
0 G
gS 0 0 552 730 rC
315 50 -1 1 483 49 1 315 49 @a
-1 -1 483 75 1 1 482 49 @b
315 75 -1 1 483 74 1 315 74 @a
318 52 162 20 rC
322 65 :M
f0_12 sf
-.04(Attribute Values )A
405 52 48 19 rC
415 63 :M
f2_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
405 52 :M
psb
currentpoint pse
406 53 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Roman 0 0 0 100 T
(\() t
33 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
122 51 /Times-Roman 0 0 0 58 T
(*) t
151 96 /Times-Roman 0 0 0 100 T
(\() t
184 96 /Times-Italic 0 0 0 100 T
(P) t
244 96 /Times-Roman 0 0 0 100 T
(.) t
272 96 /Times-Italic 0 0 0 100 T
(A) t
332 96 /Times-Roman 0 0 0 100 T
(\)\)) t
pse
psb
pse
gR
1 G
gS 86 74 123 17 rC
86 74 123 17 rF
gR
0 G
gS 0 0 552 730 rC
86 75 -1 1 209 74 1 86 74 @a
-1 -1 87 91 1 1 86 74 @b
89 77 117 11 rC
93 85 :M
f0_12 sf
-.082(node )A
gR
1 G
gS 208 74 108 17 rC
208 74 108 17 rF
gR
0 G
gS 0 0 552 730 rC
208 75 -1 1 316 74 1 208 74 @a
211 77 102 11 rC
215 85 :M
f0_12 sf
-.064(shape )A
gR
1 G
gS 315 74 168 17 rC
315 74 168 17 rF
gR
0 G
gS 0 0 552 730 rC
315 75 -1 1 483 74 1 315 74 @a
-1 -1 483 91 1 1 482 74 @b
318 77 162 11 rC
322 85 :M
f0_12 sf
-.009({oval, rectangle})A
gR
1 G
gS 86 90 123 17 rC
86 90 123 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 87 107 1 1 86 90 @b
1 G
208 90 108 17 rC
208 90 108 17 rF
211 93 102 11 rC
215 101 :M
0 G
f0_12 sf
-.082(location )A
gR
1 G
gS 315 90 168 17 rC
315 90 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 107 1 1 482 90 @b
318 93 162 11 rC
322 101 :M
f0_12 sf
-.029(plane-points)A
gR
1 G
gS 86 106 123 17 rC
86 106 123 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 87 123 1 1 86 106 @b
1 G
208 106 108 17 rC
208 106 108 17 rF
211 109 102 11 rC
215 117 :M
0 G
f0_12 sf
-.163(size )A
gR
1 G
gS 315 106 168 17 rC
315 106 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 123 1 1 482 106 @b
318 109 162 11 rC
322 117 :M
f0_12 sf
-.016({100 pixels})A
gR
1 G
gS 86 122 123 17 rC
86 122 123 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 87 139 1 1 86 122 @b
1 G
208 122 108 17 rC
208 122 108 17 rF
211 125 102 11 rC
215 133 :M
0 G
f0_12 sf
-.131(color )A
gR
1 G
gS 315 122 168 17 rC
315 122 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 139 1 1 482 122 @b
318 125 162 11 rC
322 133 :M
f0_12 sf
-.023({yellow, brown, white})A
gR
1 G
gS 86 138 123 17 rC
86 138 123 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 87 155 1 1 86 138 @b
1 G
208 138 108 17 rC
208 138 108 17 rF
211 141 102 11 rC
215 149 :M
0 G
f0_12 sf
-.031(label-text )A
gR
1 G
gS 315 138 168 17 rC
315 138 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 155 1 1 482 138 @b
318 141 162 11 rC
322 149 :M
f0_12 sf
-.331(text)A
gR
1 G
gS 86 154 123 17 rC
86 154 123 17 rF
gR
0 G
gS 0 0 552 730 rC
86 170.25 -.25 .25 208.25 170 .25 86 170 @a
-1 -1 87 171 1 1 86 154 @b
1 G
208 154 108 17 rC
208 154 108 17 rF
gR
gS 0 0 552 730 rC
208 170.25 -.25 .25 315.25 170 .25 208 170 @a
211 157 102 11 rC
215 165 :M
f0_12 sf
-.088(label-color )A
gR
1 G
gS 315 154 168 17 rC
315 154 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 171 1 1 482 154 @b
315 170.25 -.25 .25 482.25 170 .25 315 170 @a
318 157 162 11 rC
322 165 :M
f0_12 sf
-.03({blue,red, black})A
gR
1 G
gS 86 170 123 17 rC
86 170 123 17 rF
gR
0 G
gS 0 0 552 730 rC
86 170.25 -.25 .25 208.25 170 .25 86 170 @a
-1 -1 87 187 1 1 86 170 @b
89 173 117 11 rC
93 181 :M
f0_12 sf
-.163(edge )A
gR
1 G
gS 208 170 108 17 rC
208 170 108 17 rF
gR
0 G
gS 0 0 552 730 rC
208 170.25 -.25 .25 315.25 170 .25 208 170 @a
211 173 102 11 rC
215 181 :M
f0_12 sf
-.064(source-location )A
gR
1 G
gS 315 170 168 17 rC
315 170 168 17 rF
gR
0 G
gS 0 0 552 730 rC
315 170.25 -.25 .25 482.25 170 .25 315 170 @a
-1 -1 483 187 1 1 482 170 @b
318 173 162 11 rC
322 181 :M
f0_12 sf
-.029(plane-points)A
gR
1 G
gS 86 186 123 17 rC
86 186 123 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 87 203 1 1 86 186 @b
1 G
208 186 108 17 rC
208 186 108 17 rF
211 189 102 11 rC
215 197 :M
0 G
f0_12 sf
-.075(dest-location )A
gR
1 G
gS 315 186 168 17 rC
315 186 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 203 1 1 482 186 @b
318 189 162 11 rC
322 197 :M
f0_12 sf
-.029(plane-points)A
gR
1 G
gS 86 202 123 17 rC
86 202 123 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 87 219 1 1 86 202 @b
1 G
208 202 108 17 rC
208 202 108 17 rF
211 205 102 11 rC
215 213 :M
0 G
f0_12 sf
-.131(color )A
gR
1 G
gS 315 202 168 17 rC
315 202 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 219 1 1 482 202 @b
318 205 162 11 rC
322 213 :M
f0_12 sf
-.028({red, orange, magenta, green})A
gR
1 G
gS 86 218 123 17 rC
86 218 123 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 87 235 1 1 86 218 @b
1 G
208 218 108 17 rC
208 218 108 17 rF
211 221 102 11 rC
215 229 :M
0 G
f0_12 sf
-.071(from-node )A
gR
1 G
gS 315 218 168 17 rC
315 218 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 235 1 1 482 218 @b
318 221 162 11 rC
322 229 :M
f4_12 sf
(I)S
327 229 :M
f0_12 sf
-.062(\(node\))A
gR
1 G
gS 86 234 123 17 rC
86 234 123 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 87 251 1 1 86 234 @b
1 G
208 234 108 17 rC
208 234 108 17 rF
211 237 102 11 rC
215 245 :M
0 G
f0_12 sf
-.093(to-node )A
gR
1 G
gS 315 234 168 17 rC
315 234 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 251 1 1 482 234 @b
318 237 162 11 rC
322 245 :M
f4_12 sf
(I)S
327 245 :M
f0_12 sf
-.062(\(node\))A
gR
1 G
gS 86 250 123 17 rC
86 250 123 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 87 267 1 1 86 250 @b
1 G
208 250 108 17 rC
208 250 108 17 rF
211 253 102 11 rC
215 261 :M
0 G
f0_12 sf
-.031(label-text )A
gR
1 G
gS 315 250 168 17 rC
315 250 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 267 1 1 482 250 @b
318 253 162 11 rC
322 261 :M
f0_12 sf
-.331(text)A
gR
1 G
gS 86 266 123 17 rC
86 266 123 17 rF
gR
0 G
gS 0 0 552 730 rC
86 282.25 -.25 .25 208.25 282 .25 86 282 @a
-1 -1 87 283 1 1 86 266 @b
1 G
208 266 108 17 rC
208 266 108 17 rF
gR
gS 0 0 552 730 rC
208 282.25 -.25 .25 315.25 282 .25 208 282 @a
211 269 102 11 rC
215 277 :M
f0_12 sf
-.088(label-color )A
gR
1 G
gS 315 266 168 17 rC
315 266 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 283 1 1 482 266 @b
315 282.25 -.25 .25 482.25 282 .25 315 282 @a
318 269 162 11 rC
322 277 :M
f0_12 sf
-.084({black})A
gR
1 G
gS 86 282 123 17 rC
86 282 123 17 rF
gR
0 G
gS 0 0 552 730 rC
86 282.25 -.25 .25 208.25 282 .25 86 282 @a
-1 -1 87 299 1 1 86 282 @b
89 285 117 11 rC
93 293 :M
f0_12 sf
-.096(arrangement)A
gR
1 G
gS 208 282 108 17 rC
208 282 108 17 rF
gR
0 G
gS 0 0 552 730 rC
208 282.25 -.25 .25 315.25 282 .25 208 282 @a
211 285 102 11 rC
215 293 :M
f0_12 sf
-.064(label )A
gR
1 G
gS 315 282 168 17 rC
315 282 168 17 rF
gR
0 G
gS 0 0 552 730 rC
315 282.25 -.25 .25 482.25 282 .25 315 282 @a
-1 -1 483 299 1 1 482 282 @b
318 285 162 11 rC
322 293 :M
f0_12 sf
-.331(text)A
gR
1 G
gS 86 298 123 17 rC
86 298 123 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 87 315 1 1 86 298 @b
1 G
208 298 108 17 rC
208 298 108 17 rF
211 301 102 11 rC
215 309 :M
0 G
f0_12 sf
-.088(label-color )A
gR
1 G
gS 315 298 168 17 rC
315 298 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 315 1 1 482 298 @b
318 301 162 11 rC
322 309 :M
f0_12 sf
-.028({red, orange, magenta, green})A
gR
1 G
gS 86 314 123 17 rC
86 314 123 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 87 331 1 1 86 314 @b
1 G
208 314 108 17 rC
208 314 108 17 rF
211 317 102 11 rC
215 325 :M
0 G
f0_12 sf
-.069(label-location )A
gR
1 G
gS 315 314 168 17 rC
315 314 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 331 1 1 482 314 @b
318 317 162 11 rC
322 325 :M
f0_12 sf
-.029(plane-points)A
gR
1 G
gS 86 330 123 17 rC
86 330 123 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 87 347 1 1 86 330 @b
1 G
208 330 108 17 rC
208 330 108 17 rF
211 333 102 11 rC
215 341 :M
0 G
f0_12 sf
-.027(parent-node )A
gR
1 G
gS 315 330 168 17 rC
315 330 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 347 1 1 482 330 @b
318 333 162 11 rC
322 341 :M
f4_12 sf
(I)S
327 341 :M
f0_12 sf
-.062(\(node\))A
gR
1 G
gS 86 346 123 17 rC
86 346 123 17 rF
gR
0 G
gS 0 0 552 730 rC
86 363 -1 1 209 362 1 86 362 @a
-1 -1 87 363 1 1 86 346 @b
1 G
208 346 108 17 rC
208 346 108 17 rF
gR
gS 0 0 552 730 rC
208 363 -1 1 316 362 1 208 362 @a
211 349 102 11 rC
215 357 :M
f0_12 sf
-.031(child-node )A
gR
1 G
gS 315 346 168 17 rC
315 346 168 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 483 363 1 1 482 346 @b
315 363 -1 1 483 362 1 315 362 @a
318 349 162 11 rC
322 357 :M
f4_12 sf
(I)S
327 357 :M
f0_12 sf
-.062(\(node\))A
gR
gS 0 363 552 338 rC
211 384 :M
f0_10 sf
-.022(Table 4.10. A Unified Visual Model)A
78 414 :M
f2_10 sf
-.249(Nodes)A
103 414 :M
f0_10 sf
.606 .061( existed in both of the original models, yet they had)J
319 414 :M
1.261 .126( different shapes. In the combined model, a)J
60 429 :M
.555 .055(choice of shape exists. Figure 4.7 gives an example of a schema displayed using the mixed metaphor. Note)J
60 444 :M
-.24(how )A
80 444 :M
f2_10 sf
-.07(node)A
f0_10 sf
-.057( shape is either)A
159 444 :M
.443 .044( oval or rectangular, and how )J
f2_10 sf
.134(relationships)A
f0_10 sf
.436 .044( may be displayed either using an )J
f2_10 sf
.209(edge)A
498 444 :M
f0_10 sf
.144 .014( or)J
60 459 :M
-.469(an )A
72 459 :M
f2_10 sf
-.065(arrangement)A
124 459 :M
f0_10 sf
(.)S
115 474 340 185 rC
-70 455 -1 1 -68 455 1 -70 454 @a
-70 455 -1 1 -68 455 1 -70 454 @a
320 489.25 -.25 .25 370.25 569 .25 320 489 @a
-.25 -.25 250.25 569.25 .25 .25 320 489 @b
-.25 -.25 135.25 569.25 .25 .25 320 489 @b
1 G
170 539 35 10 rF
170.5 539.5 34 9 rS
250 539 40 10 rF
250.5 539.5 39 9 rS
340 539 30 10 rF
340.5 539.5 29 9 rS
320 483 :M
0 G
f5_7 sf
.175(Company)A
.5 G
370 498 :M
0 G
.144(String)A
.5 G
335 498 :M
0 G
.111(Name)A
.5 G
170 548 :M
0 G
.269(Employee)A
.5 G
120 578 :M
0 G
.165(Person)A
.5 G
130 593 :M
0 G
.111(Name)A
.5 G
130 608 :M
0 G
.274(Age)A
.5 G
165 593 :M
0 G
.144(String)A
.5 G
165 608 :M
0 G
.109(Int)A
.5 G
0 G
.25 lw
160.5 584.5 34 14 rS
315.5 474.5 44 14 rS
160.5 599.5 34 14 rS
130 623 :M
.233(Salary)A
.5 G
130 638 :M
0 G
.581 .058(Phone #)J
.5 G
130 651 :M
0 G
.221(Address)A
.5 G
0 G
160.5 629.5 34 14 rS
160.5 644.5 34 14 rS
165 623 :M
.111(Float)A
.5 G
165 638 :M
0 G
.144(String)A
.5 G
165 652 :M
0 G
.144(String)A
.5 G
230 578 :M
0 G
.049(Department)A
.5 G
365 578 :M
0 G
.147(Product)A
.5 G
0 G
365.5 489.5 34 14 rS
240 593 :M
.111(Name)A
.5 G
240 608 :M
0 G
1.273 .127(# Employees)J
.5 G
240 623 :M
0 G
.015(Floor)A
.5 G
335 513 :M
0 G
.221(Address)A
.5 G
370 513 :M
0 G
.144(String)A
.5 G
0 G
365.5 504.5 34 14 rS
290 593 :M
.144(String)A
.5 G
290 608 :M
0 G
.109(Int)A
.5 G
0 G
285.5 584.5 34 14 rS
285.5 599.5 34 14 rS
290 623 :M
.109(Int)A
.5 G
375 593 :M
0 G
.524 .052(Product ID#)J
.5 G
375 608 :M
0 G
.116(#produced)A
.5 G
375 623 :M
0 G
.132(ProductType)A
.5 G
425 593 :M
0 G
.109(Int)A
.5 G
425 608 :M
0 G
.109(Int)A
.5 G
0 G
420.5 599.5 34 14 rS
420.5 614.5 34 14 rS
425 623 :M
.144(String)A
.5 G
340 548 :M
0 G
.147(Product)A
.5 G
250 548 :M
0 G
.049(Department)A
.5 G
0 G
360.5 569.5 399.5 583.5 5.5 @s
225.5 569.5 49 14 rS
115.5 569.5 149.5 583.5 5.5 @s
285.5 614.5 319.5 628.5 5.5 @s
160.5 614.5 194.5 628.5 5.5 @s
420.5 584.5 454.5 598.5 5.5 @s
gR
gS 0 363 552 338 rC
129 683 :M
f0_10 sf
-.012(Figure 4.7. An example of a schema displayed using the combined metaphor.)A
endp
%%Page: 22 22
%%BeginPageSetup
initializepage
(; page: 22 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(45)S
gR
gS 0 36 552 462 rC
60 63 :M
f1_14 sf
-.013(4.6 Visually Capturing Additional Information)A
78 93 :M
f0_10 sf
-.011(The definition of models and metaphors allows the)A
282 93 :M
.596 .06( visual model to have greater information capacity than)J
60 108 :M
.125 .012(the data model. Specifically, there may be more concepts in the visual model than in the data model, the visual)J
60 123 :M
.381 .038(model concepts used in the metaphor may have more attributes than their corresponding data model concepts,)J
60 138 :M
.119 .012(and the range of visual attribute values may be greater than that of their corresponding data model attributes. It)J
60 153 :M
-.021(is possible to define the visual model to have)A
240 153 :M
.587 .059( the same information capacity as the data model, but often extra)J
60 168 :M
-.008(information capacity is valuable. Surplus information capacity may be used)A
365 168 :M
.675 .068( in two ways. One is to enrich the)J
60 183 :M
-.009(metaphor. For example, the )A
175 172 15 16 rC
186 183 :M
f2_12 sf
( )S
175 172 :M
psb
currentpoint pse
176 173 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(T) t
31 52 /Times-Italic 0 0 0 29 T
(p) t
pse
psb
pse
gR
gS 0 36 552 462 rC
190 183 :M
f0_10 sf
(, )S
195 172 14 16 rC
206 183 :M
f2_12 sf
( )S
195 172 :M
psb
currentpoint pse
196 173 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(T) t
29 52 /Times-Italic 0 0 0 29 T
(a) t
pse
psb
pse
gR
gS 0 36 552 462 rC
209 183 :M
f0_10 sf
-.11( and )A
228 172 14 16 rC
239 183 :M
f2_12 sf
( )S
228 172 :M
psb
currentpoint pse
229 173 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Italic 0 0 0 50 T
(T) t
29 52 /Times-Italic 0 0 0 29 T
(v) t
pse
psb
pse
gR
gS 0 36 552 462 rC
242 183 :M
f0_10 sf
.527 .053( functions may be many-to-one, allowing redundancy and choice)J
60 198 :M
(in representing information. The)S
.424 .042( other use of extra information capacity, and the subject of this section, is to)J
60 213 :M
1.632 .163(capture information outside of the data schema. This information may be divided into two categories:)J
60 228 :M
-.019(presentation and personal model information. The )A
265 228 :M
f2_10 sf
-.072(personal model)A
327 228 :M
f0_10 sf
( is)S
.564 .056( a superset of the data model, additionally)J
60 243 :M
.994 .099(containing information that is part of the user\325s conception but not captured by the database. Presentation)J
60 258 :M
.526 .053(information is any visual information not mapped by the metaphor)J
f2_10 sf
(.)S
338 258 :M
.192 .019( )J
f0_10 sf
1.363 .136(These two kinds of information will be)J
60 273 :M
-.025(discussed in depth in this section.)A
60 303 :M
f1_12 sf
-.01(4.6.1 Presentation Information)A
78 333 :M
f0_10 sf
1.127 .113(Presentation information is visual information that is not mapped by the metaphor. For example, the)J
60 348 :M
.248 .025(locations of nodes in a directed graph are usually chosen for purely aesthetic reasons, so location would not be)J
60 363 :M
-.018(part of the metaphor. While not)A
189 363 :M
.624 .062( capturing any part of the data schema, this information is important as it can)J
60 378 :M
.137 .014(affect the readability of a presentation, and it may express meaning for the user that is difficult or impossible to)J
60 393 :M
-.013(capture in the data model. There are many ways to)A
265 393 :M
.65 .065( lay out a directed graph, all having the same meaning, but)J
60 408 :M
-.002(some are much more readable than others.)A
78 423 :M
.53 .053(Presentation information is captured by those surplus visual model concepts and attributes that are not in)J
60 438 :M
-.005(the domain of the metaphor, and by the attribute value and concept choices that are part of the metaphor. For)A
498 438 :M
.051 .005( an)J
60 453 :M
-.009(example of the use of extra concepts, consider the visual model and metaphor)A
371 453 :M
.427 .043( from Section 4.3.1 supplemented)J
60 468 :M
-.009(with the following concept:)A
gR
1 G
gS 106 498 111 26 rC
106 498 111 26 rF
gR
0 G
gS 0 0 552 730 rC
106 499 -1 1 217 498 1 106 498 @a
106 524 -1 1 217 523 1 106 523 @a
-1 -1 107 524 1 1 106 498 @b
109 501 105 20 rC
113 514 :M
f0_12 sf
-.141(Concept )A
156 503 19 16 rC
167 514 :M
f2_12 sf
( )S
f0_12 sf
( )S
156 503 :M
psb
currentpoint pse
157 504 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
(\() t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 216 498 99 26 rC
216 498 99 26 rF
gR
0 G
gS 0 0 552 730 rC
216 499 -1 1 315 498 1 216 498 @a
216 524 -1 1 315 523 1 216 523 @a
219 501 93 20 rC
223 514 :M
f0_12 sf
-.035(Attribute )A
269 503 30 16 rC
280 514 :M
f2_12 sf
( )S
f0_12 sf
( )S
269 503 :M
psb
currentpoint pse
270 504 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
(\() t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(.) t
62 42 /Times-Italic 0 0 0 50 T
(A) t
93 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 314 498 150 26 rC
314 498 150 26 rF
gR
0 G
gS 0 0 552 730 rC
314 499 -1 1 464 498 1 314 498 @a
-1 -1 464 524 1 1 463 498 @b
314 524 -1 1 464 523 1 314 523 @a
317 501 144 20 rC
321 514 :M
f0_12 sf
-.04(Attribute Values )A
404 501 48 19 rC
414 512 :M
f2_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
404 501 :M
psb
currentpoint pse
405 502 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Roman 0 0 0 100 T
(\() t
33 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
122 51 /Times-Roman 0 0 0 58 T
(*) t
151 96 /Times-Roman 0 0 0 100 T
(\() t
184 96 /Times-Italic 0 0 0 100 T
(P) t
244 96 /Times-Roman 0 0 0 100 T
(.) t
272 96 /Times-Italic 0 0 0 100 T
(A) t
332 96 /Times-Roman 0 0 0 100 T
(\)\)) t
pse
psb
pse
gR
1 G
gS 106 523 111 18 rC
106 523 111 18 rF
gR
0 G
gS 0 0 552 730 rC
106 524 -1 1 217 523 1 106 523 @a
-1 -1 107 541 1 1 106 523 @b
109 526 105 12 rC
113 535 :M
f0_12 sf
-.326(rect)A
gR
1 G
gS 216 523 99 18 rC
216 523 99 18 rF
gR
0 G
gS 0 0 552 730 rC
216 524 -1 1 315 523 1 216 523 @a
219 526 93 12 rC
223 535 :M
f0_12 sf
-.08(shape)A
gR
1 G
gS 314 523 150 18 rC
314 523 150 18 rF
gR
0 G
gS 0 0 552 730 rC
314 524 -1 1 464 523 1 314 523 @a
-1 -1 464 541 1 1 463 523 @b
317 526 144 12 rC
321 535 :M
f0_12 sf
-.037({ rectangle } )A
gR
1 G
gS 106 540 111 18 rC
106 540 111 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 107 558 1 1 106 540 @b
1 G
216 540 99 18 rC
216 540 99 18 rF
219 543 93 12 rC
223 552 :M
0 G
f0_12 sf
-.093(location)A
gR
1 G
gS 314 540 150 18 rC
314 540 150 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 464 558 1 1 463 540 @b
317 543 144 12 rC
321 552 :M
f0_12 sf
-.026(plane-points )A
gR
1 G
gS 106 557 111 22 rC
106 557 111 22 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 107 579 1 1 106 557 @b
1 G
216 557 99 22 rC
216 557 99 22 rF
219 560 93 12 rC
223 569 :M
0 G
f0_12 sf
-.218(size)A
gR
1 G
gS 314 557 150 22 rC
314 557 150 22 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 464 579 1 1 463 557 @b
317 560 144 16 rC
321 571 :M
f0_12 sf
-.045(integer )A
357 560 10 16 rC
368 571 :M
f3_12 sf
( )S
357 560 :M
psb
currentpoint pse
358 561 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Symbol 0 0 0 50 T
(\264) t
pse
psb
pse
gR
gS 317 560 144 16 rC
367 571 :M
f0_12 sf
-.065( integer pixels )A
gR
1 G
gS 106 578 111 18 rC
106 578 111 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 107 596 1 1 106 578 @b
1 G
216 578 99 18 rC
216 578 99 18 rF
219 581 93 12 rC
223 590 :M
0 G
f0_12 sf
-.019(background-color)A
gR
1 G
gS 314 578 150 18 rC
314 578 150 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 464 596 1 1 463 578 @b
317 581 144 12 rC
321 590 :M
f0_12 sf
-.02({ white } )A
gR
1 G
gS 106 595 111 18 rC
106 595 111 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 107 613 1 1 106 595 @b
1 G
216 595 99 18 rC
216 595 99 18 rF
219 598 93 12 rC
223 607 :M
0 G
f0_12 sf
-.087(border-color)A
gR
1 G
gS 314 595 150 18 rC
314 595 150 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 464 613 1 1 463 595 @b
317 598 144 12 rC
321 607 :M
f0_12 sf
-.056({ black } )A
gR
1 G
gS 106 612 111 18 rC
106 612 111 18 rF
gR
0 G
gS 0 0 552 730 rC
106 630 -1 1 217 629 1 106 629 @a
-1 -1 107 630 1 1 106 612 @b
1 G
216 612 99 18 rC
216 612 99 18 rF
gR
gS 0 0 552 730 rC
216 630 -1 1 315 629 1 216 629 @a
219 615 93 12 rC
223 624 :M
f0_12 sf
-.058(border-width)A
gR
1 G
gS 314 612 150 18 rC
314 612 150 18 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 464 630 1 1 463 612 @b
314 630 -1 1 464 629 1 314 629 @a
317 615 144 12 rC
321 624 :M
f0_12 sf
-.015({ 2 } pixels )A
gR
gS 0 630 552 84 rC
223 651 :M
f0_10 sf
-.025(Table 4.11. The Rect concept.)A
78 681 :M
-.093(This )A
f2_10 sf
-.119(rect)A
114 681 :M
f0_10 sf
-.018( is a black bordered rectangle of any given size and)A
319 681 :M
.618 .062( location. Not part of the metaphor\325s domain,)J
60 696 :M
-.187(it can)A
82 696 :M
.637 .064( be used freely without affecting the meaning of a visual schema. For example, a )J
426 696 :M
f2_10 sf
-.181(rect)A
442 696 :M
f0_10 sf
.611 .061( could be placed)J
60 711 :M
-.007(around the entire schema to give it a border and improve its appearance.)A
endp
%%Page: 23 23
%%BeginPageSetup
initializepage
(; page: 23 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(46)S
gR
gS 0 46 552 659 rC
78 58 :M
f0_10 sf
-.009(An example of surplus attributes may be found in the same metaphor: )A
360 58 :M
f2_10 sf
-.045(node-location)A
416 58 :M
f0_10 sf
.513 .051( is not specified by the)J
60 73 :M
1.52 .152(mapping and can be freely specified as mentioned above. Similarly, the possibility of representing 1:1)J
60 88 :M
-.02(relationships as either \324green\325 or \324orange\325 )A
f2_10 sf
-.03(edges)A
251 88 :M
f0_10 sf
-.024( allows the user aesthetic leeway)A
382 88 :M
.462 .046( without changing the meaning)J
60 103 :M
-.021(of the visual schema.)A
78 118 :M
.014 .001(Another means of capturing presentation information is through choice of visual model concepts. Different)J
60 133 :M
-.005(concepts may have very different appearances, affecting the aesthetics of the schema. For example, consider the)A
60 148 :M
1.418 .142(combined metaphor described in Section 4.5.2. It maps two visual concepts, )J
398 148 :M
f2_10 sf
-.292(edge)A
417 148 :M
f0_10 sf
.537 .054( and )J
f2_10 sf
.357(arrangement)A
494 148 :M
f0_10 sf
1.709 .171(, to)J
60 163 :M
f2_10 sf
.231(relationships)A
f0_10 sf
.848 .085(. These visual concepts have very)J
261 163 :M
1.733 .173( different appearances and would be suitable in different)J
60 178 :M
-.083(situations.)A
60 208 :M
f1_12 sf
-.017(4.6.2 Personal Data Model Information)A
78 238 :M
f0_10 sf
.309 .031(Databases are commonly used for holding information about real-world items. Data schemas describe the)J
60 253 :M
-.023(organization of these items in as much)A
214 253 :M
.625 .063( detail as allowed by the data model. Frequently, however, there exists)J
60 268 :M
.558 .056(other organizational information about these items that might be helpful to the user,)J
407 268 :M
1.368 .137( but is not or cannot be)J
60 283 :M
-.029(captured by the data schema.)A
78 298 :M
.778 .078(We introduce the notion of a )J
f2_10 sf
1.245 .125(personal data model)J
f0_10 sf
.867 .087( to capture the organization of the database from the)J
60 313 :M
.226 .023(user\325s viewpoint. This is no different from any other data model, except for the fact that each user may have a)J
60 328 :M
.083 .008(different personal data model \(while there is a single system data model\) and also that each personal data model)J
60 343 :M
-.013(must be an extension of the system data model. )A
252 343 :M
.298 .03( Accordingly, )J
f2_10 sf
.427 .043(extended visual metaphors)J
420 343 :M
f0_10 sf
.666 .067( may be defined from)J
60 358 :M
-.015(a visual model to personal data models to capture)A
258 358 :M
.595 .059( the full range of characteristics of personal data schemas, as)J
60 373 :M
-.015(shown in Figure 4.8. Such an extended metaphor would)A
286 373 :M
.598 .06( map visual model concepts, attributes, and values not)J
60 388 :M
.326 .033(used by the regular metaphor \(i.e., its excess information capacity\) to corresponding constructs of the personal)J
60 403 :M
.028 .003(data model that are not part of the system data model. Figure 4.8 demonstrates the distinction between Personal)J
60 418 :M
1.465 .146(and Aesthetic information: Personal information may be preserved between different visual models, and)J
60 433 :M
-.002(Aesthetic information can only be preserved within a single visual model.)A
109 451 352 88 rC
23 186 -1 1 25 186 1 23 185 @a
24 186 :M
% P2-v17 - Copyright 1991 Aldus Corporation
userdict/md known{currentdict md eq md/bu known and}{false}ifelse{bu}if currentdict/P2_d known not{/P2_b{P2_d
begin}bind def/P2_d 33 dict def userdict/md known{currentdict md eq}{false}ifelse P2_b dup dup
/mk exch def{md/pat known md/sg known md/gr known and and}{false}ifelse/pk exch def{md
/setTxMode known}{false}ifelse/sk exch def mk{md/xl known}{false}ifelse/xk exch def/b{bind def}bind def/sa{matrix currentmatrix P2_tp
concat aload pop}b/sb{matrix currentmatrix exch concat P2_tp matrix invertmatrix concat aload
pop}b/se{matrix astore setmatrix}b/bb{gsave P2_tp concat newpath moveto}b/bc{curveto}b/bl
{lineto}b/bx{closepath}b/bp{gsave eofill grestore}b/bf{scale 1 setlinewidth stroke}b/be
{grestore}b/p{/gf false def}b p/g{/gf true def}b pk{/_pat/pat load def/_gr/gr load def}{/_gr
{64.0 div setgray}b}ifelse sk{/_sTM/setTxMode load def}if/gx{/tg exch def}b 0 gx/x6{mk{av 68 gt
{false}if}if}b/bps 8 string def/bpm[8 0 0 8 0 0]def/bpp{bps}def/obp{gsave setrgbcolor bps copy pop
dup 0 get 8 div floor cvi 8 mul 1 index 2 get 8 div floor cvi 8 mul 2 index 1 get 8 div floor cvi 8 mul
8 4 index 3 get 8 div floor cvi 8 mul{2 index 8 3 index{1 index gsave translate 8 8 scale 8 8 false bpm/bpp
load imagemask grestore}for pop}for pop pop pop grestore}b end P2_b pk end{/pat{P2_b gf{end pop sg
P2_b mk end{av 68 gt{pop}if}if}{/_pat load end exec}ifelse}bind def}{/pat{P2_b pop _gr end}bind
def}ifelse P2_b sk end{/setTxMode{P2_b/_sTM load end exec P2_b tg dup 0 ge{/_gr load end exec}
{pop end}ifelse}bind def}{/setTxMode{pop P2_b tg dup 0 ge{/_gr load end exec}{pop end}ifelse}bind
def}ifelse P2_b xk end{P2_d/_xl/xl load put/xl{P2_b 2 copy P2_tp 4 get add P2_tp 4 3 -1 roll put
P2_tp 5 get add P2_tp 5 3 -1 roll put/_xl load end exec}bind def}if}if
109 451 :M
10 338 1 index neg 1 index neg matrix translate 3 1 roll
currentpoint 2 copy matrix translate 6 1 roll
461 539 :M
460 450 currentpoint 1 index 6 index sub 4 index 9 index sub div
1 index 6 index sub 4 index 9 index sub div
matrix scale 11 1 roll
[ 9 1 roll cleartomark
3 2 roll matrix concatmatrix
exch matrix concatmatrix
/P2_tp exch def
P2_b mk end{md/bn known{bn}if}if
23 186 -1 1 25 186 1 23 185 @a
24 186 :M
P2_b g end
.75 G
np 218 518 :M
218 523 :L
222 526 :L
355 526 :L
355 519 :L
355 518 :L
218 518 :L
eofill
-.25 -.25 218.25 523.25 .25 .25 218 518 @b
218 523.25 -.25 .25 222.25 526 .25 218 523 @a
222 526.25 -.25 .25 355.25 526 .25 222 526 @a
-.25 -.25 355.25 526.25 .25 .25 355 519 @b
-.25 -.25 355.25 519.25 .25 .25 355 518 @b
218 518.25 -.25 .25 355.25 518 .25 218 518 @a
np 218 505 :M
218 496 :L
223 492 :L
243 492 :L
243 505 :L
218 505 :L
eofill
-.25 -.25 218.25 505.25 .25 .25 218 496 @b
-.25 -.25 218.25 496.25 .25 .25 223 492 @b
223 492.25 -.25 .25 243.25 492 .25 223 492 @a
-.25 -.25 243.25 505.25 .25 .25 243 492 @b
218 505.25 -.25 .25 243.25 505 .25 218 505 @a
243 505 :M
P2_b p end
0 G
.25 lw
109.5 484.5 218.5 534.5 6.5 @s
1 lw
243 505 :M
P2_b g end
.875 G
np 208 518 :M
203 512 :L
208 505 :L
247 505 :L
247 518 :L
208 518 :L
203 512 :L
208 518 :L
eofill
203 512.25 -.25 .25 208.25 518 .25 203 512 @a
-.25 -.25 203.25 512.25 .25 .25 208 505 @b
208 505.25 -.25 .25 247.25 505 .25 208 505 @a
-.25 -.25 247.25 518.25 .25 .25 247 505 @b
208 518.25 -.25 .25 247.25 518 .25 208 518 @a
203 512.25 -.25 .25 208.25 518 .25 203 512 @a
203 512.25 -.25 .25 208.25 518 .25 203 512 @a
203 512 :M
P2_b p end
0 G
.25 lw
359.5 451.5 460.5 538.5 6.5 @s
1 lw
203 512 :M
P2_b g end
.75 G
np 341 492 :M
341 505 :L
363 505 :L
363 492 :L
341 492 :L
eofill
-.25 -.25 341.25 505.25 .25 .25 341 492 @b
341 505.25 -.25 .25 363.25 505 .25 341 505 @a
-.25 -.25 363.25 505.25 .25 .25 363 492 @b
341 492.25 -.25 .25 363.25 492 .25 341 492 @a
np 355 518 :M
355 526 :L
363 526 :L
363 518 :L
353 518 :L
355 518 :L
eofill
-.25 -.25 355.25 526.25 .25 .25 355 518 @b
355 526.25 -.25 .25 363.25 526 .25 355 526 @a
-.25 -.25 363.25 526.25 .25 .25 363 518 @b
353 518.25 -.25 .25 363.25 518 .25 353 518 @a
353 518.25 -.25 .25 355.25 518 .25 353 518 @a
353 518 :M
P2_b p end
0 G
.25 lw
363.5 484.5 456.5 534.5 6.5 @s
1 lw
353 518 :M
P2_b g end
.875 G
np 335 505 :M
335 518 :L
379 518 :L
377 516 :L
377 515 :L
377 515 :L
376 514 :L
376 508 :L
377 508 :L
377 507 :L
377 506 :L
377 505 :L
335 505 :L
eofill
-.25 -.25 335.25 518.25 .25 .25 335 505 @b
335 518.25 -.25 .25 379.25 518 .25 335 518 @a
377 516.25 -.25 .25 379.25 518 .25 377 516 @a
-.25 -.25 377.25 516.25 .25 .25 377 515 @b
-.25 -.25 377.25 515.25 .25 .25 377 515 @b
376 514.25 -.25 .25 377.25 515 .25 376 514 @a
-.25 -.25 376.25 514.25 .25 .25 376 508 @b
376 508.25 -.25 .25 377.25 508 .25 376 508 @a
-.25 -.25 377.25 508.25 .25 .25 377 507 @b
-.25 -.25 377.25 507.25 .25 .25 377 506 @b
-.25 -.25 377.25 506.25 .25 .25 377 505 @b
335 505.25 -.25 .25 377.25 505 .25 335 505 @a
377 505 :M
P2_b p end
1 G
259 506 60 12 rF
.25 lw
259.5 506.5 59 11 rS
240 493 99 11 rF
240.5 493.5 98 10 rS
gS
.782 .786 scale
320.885 656.735 :M
0 G
f5_14 sf
.363 .036(Visual Metaphor)J
gR
.5 G
0 G
210 505.25 -.25 .25 377.25 505 .25 210 505 @a
210 518.25 -.25 .25 377.25 518 .25 210 518 @a
222 492.25 -.25 .25 363.25 492 .25 222 492 @a
gS
.782 .786 scale
471.74 593.097 :M
f5_18 sf
-.092(Visual Model)A
gR
.5 G
gS
.782 .786 scale
161.082 656.735 :M
0 G
f5_18 sf
-.112(Data Model)A
gR
0 G
121.5 504.5 202.5 518.5 6.5 @s
-.25 -.25 203.25 512.25 .25 .25 215 500 @b
203 512.25 -.25 .25 215.25 523 .25 203 512 @a
gS
.782 .786 scale
147.019 632.552 :M
f5_18 sf
-.078(Personal Model)A
gR
.5 G
gS
.782 .786 scale
480.689 632.552 :M
0 G
f7_14 sf
.241 .024(Personal Info)J
gR
gS
.782 .786 scale
481.967 655.462 :M
0 G
f7_14 sf
.21 .021(Schema Info)J
gR
gS
.782 .786 scale
478.132 610.916 :M
0 G
f7_14 sf
.084 .008(Aesthetic Info)J
gR
0 G
-.25 -.25 219.25 496.25 .25 .25 230 484 @b
219 523.25 -.25 .25 230.25 535 .25 219 523 @a
gS
.782 .786 scale
314.493 638.916 :M
f5_14 sf
-.139(Enhanced Vis. Met.)A
gR
.5 G
0 G
222 526.25 -.25 .25 363.25 526 .25 222 526 @a
375.5 504.5 444.5 518.5 6.5 @s
gR
gS 0 46 552 659 rC
77 566 :M
f0_10 sf
-.007(Figure 4.8. The personal data model and metaphor as extensions of the data model and visual metaphor)A
78 596 :M
-.013(As an example of a personal data model and its corresponding)A
327 596 :M
.503 .05( personal metaphor, consider the data model)J
60 611 :M
.567 .057(of Section 4.2.4, whose concepts are )J
215 611 :M
f2_10 sf
-.049(entity-class)A
261 611 :M
f0_10 sf
.081 .008( and )J
f2_10 sf
.044(relationship.)A
333 611 :M
f0_10 sf
1.004 .1( Like other object-oriented/semantic data)J
60 626 :M
.92 .092(models, this model does not allow higher-level groupings of )J
f2_10 sf
.235(entity-classes)A
375 626 :M
f0_10 sf
.375 .037( or )J
f2_10 sf
.271(relationships)A
f0_10 sf
.88 .088(, an ability that)J
60 641 :M
-.023(could be very useful to a user. )A
183 641 :M
.557 .056( For example, a schema combining data from an experiment could have )J
f2_10 sf
.154(entity-)A
60 656 :M
.048(classes)A
f0_10 sf
.191 .019( grouped by)J
138 656 :M
1.15 .115( their roles within the experiment \(e.g., input versus output\), whether their contents are)J
60 671 :M
.751 .075(considered accurate, and their significance to the user. Multiple simultaneous orthogonal groupings may be)J
60 686 :M
-.028(captured this way, with an )A
168 686 :M
f2_10 sf
-.049(entity-class)A
214 686 :M
f0_10 sf
.223 .022( belonging to several different groups for different reasons. This may be)J
60 701 :M
1.303 .13(achieved by allowing a user to extend the above data model so that groups can be captured. The visual)J
endp
%%Page: 24 24
%%BeginPageSetup
initializepage
(; page: 24 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(47)S
gR
gS 0 44 552 663 rC
60 56 :M
f0_10 sf
.424 .042(metaphor from Section 4.3.1 may also be modified to represent group information to the user. In the original)J
60 71 :M
-.085(metaphor, )A
103 71 :M
f2_10 sf
-.119(node)A
f0_10 sf
-.101( size,)A
143 71 :M
.589 .059( label-color, shape, and location are attributes that are not part of the metaphor mapping.)J
60 86 :M
-.021(If the visual model were defined)A
190 86 :M
.639 .064( to allow these attributes a greater range of values, they could be used by the)J
60 101 :M
1.251 .125(personal metaphor to enhance the information that is captured visually. Figures 4.9, 4.10, and 4.11 give)J
60 116 :M
1.845 .184(examples of an unmodified visual schema, grouping by location, and grouping by shape and location,)J
60 131 :M
-.067(respectively.)A
214 134 139 73 rC
-96 -31 -1 1 -94 -31 1 -96 -32 @a
-96 -31 -1 1 -94 -31 1 -96 -32 @a
214 134 139 15 rC
281 146 :M
f5_9 sf
(A)S
gR
.5 G
gS 214 134 139 73 rC
0 G
.25 lw
274.5 134.5 292.5 152.5 8.5 @s
214 134 139 69 rC
221 200 :M
f5_9 sf
(B)S
gR
gS 214 134 139 73 rC
0 G
.25 lw
214.5 188.5 232.5 206.5 8.5 @s
214 134 139 69 rC
251 200 :M
f5_9 sf
(C)S
gR
gS 214 134 139 73 rC
0 G
.25 lw
244.5 188.5 262.5 206.5 8.5 @s
214 134 139 69 rC
281 200 :M
f5_9 sf
(D)S
gR
gS 214 134 139 73 rC
0 G
.25 lw
274.5 188.5 292.5 206.5 8.5 @s
214 134 139 69 rC
311 200 :M
f5_9 sf
(E)S
gR
gS 214 134 139 73 rC
0 G
.25 lw
304.5 188.5 322.5 206.5 8.5 @s
214 134 139 69 rC
341 200 :M
f5_9 sf
(F)S
gR
gS 214 134 139 73 rC
0 G
.25 lw
334.5 188.5 352.5 206.5 8.5 @s
-.25 -.25 228.25 185.25 .25 .25 284 153 @b
np 228 185 :M
230 181 :L
224 188 :L
233 186 :L
228 185 :L
eofill
-.25 -.25 257.25 184.25 .25 .25 284 153 @b
np 257 184 :M
258 179 :L
254 188 :L
262 183 :L
257 184 :L
eofill
-.25 -.25 284.25 183.25 .25 .25 284 153 @b
np 284 183 :M
281 179 :L
284 188 :L
287 179 :L
284 183 :L
eofill
284 153.25 -.25 .25 311.25 184 .25 284 153 @a
np 311 184 :M
306 183 :L
314 188 :L
310 179 :L
311 184 :L
eofill
284 153.25 -.25 .25 340.25 185 .25 284 153 @a
np 340 185 :M
335 186 :L
344 188 :L
338 181 :L
340 185 :L
eofill
gR
gS 0 44 552 663 rC
224 231 :M
0 G
f0_10 sf
-.026(Figure 4.9. A directed graph. )A
1 G
213 258 144 72 rC
-92 92 -1 1 -90 92 1 -92 91 @a
-92 92 -1 1 -90 92 1 -92 91 @a
213 258 144 15 rC
285 270 :M
0 G
f5_9 sf
(A)S
gR
gS 213 258 144 72 rC
0 G
.25 lw
278.5 258.5 296.5 276.5 8.5 @s
213 258 144 33 rC
220 288 :M
f5_9 sf
(B)S
gR
gS 213 258 144 72 rC
0 G
.25 lw
213.5 276.5 231.5 294.5 8.5 @s
213 258 144 68 rC
345 323 :M
f5_9 sf
(C)S
gR
gS 213 258 144 72 rC
0 G
.25 lw
338.5 311.5 356.5 329.5 8.5 @s
213 258 144 68 rC
270 323 :M
f5_9 sf
(D)S
gR
gS 213 258 144 72 rC
0 G
.25 lw
263.5 311.5 281.5 329.5 8.5 @s
213 258 144 68 rC
320 323 :M
f5_9 sf
(E)S
gR
gS 213 258 144 72 rC
0 G
.25 lw
313.5 311.5 331.5 329.5 8.5 @s
213 258 144 58 rC
220 313 :M
f5_9 sf
(F)S
gR
gS 213 258 144 72 rC
0 G
.25 lw
213.5 301.5 231.5 319.5 8.5 @s
-.25 -.25 235.25 284.25 .25 .25 286 276 @b
np 235 284 :M
238 281 :L
228 285 :L
239 286 :L
235 284 :L
1 lw
eofill
np 235 284 :M
238 281 :L
228 285 :L
239 286 :L
235 284 :L
eofill
1 G
0 G
-.25 -.25 235.25 303.25 .25 .25 284 276 @b
np 235 303 :M
236 299 :L
228 307 :L
239 304 :L
235 303 :L
eofill
np 235 303 :M
236 299 :L
228 307 :L
239 304 :L
235 303 :L
eofill
1 G
0 G
-.25 -.25 276.25 304.25 .25 .25 287 276 @b
np 276 304 :M
275 300 :L
273 311 :L
280 302 :L
276 304 :L
eofill
np 276 304 :M
275 300 :L
273 311 :L
280 302 :L
276 304 :L
eofill
1 G
0 G
283 276.25 -.25 .25 314.25 306 .25 283 276 @a
np 314 306 :M
309 305 :L
319 311 :L
313 301 :L
314 306 :L
eofill
np 314 306 :M
309 305 :L
319 311 :L
313 301 :L
314 306 :L
eofill
1 G
0 G
283 276.25 -.25 .25 338.25 307 .25 283 276 @a
np 338 307 :M
334 308 :L
345 311 :L
337 303 :L
338 307 :L
eofill
np 338 307 :M
334 308 :L
345 311 :L
337 303 :L
338 307 :L
eofill
1 G
gR
gS 0 44 552 663 rC
214 354 :M
0 G
f0_10 sf
-.019(Figure 4.10. Grouping by location.)A
213 381 144 88 rC
-82 227 -1 1 -80 227 1 -82 226 @a
-82 227 -1 1 -80 227 1 -82 226 @a
213 381 144 61 rC
220 439 :M
f5_9 sf
(F)S
gR
gS 213 381 144 88 rC
213 381 144 82 rC
345 460 :M
0 G
f5_9 sf
(C)S
gR
gS 213 381 144 88 rC
213 381 144 84 rC
311 462 :M
0 G
f5_9 sf
(E)S
gR
gS 213 381 144 88 rC
213 381 144 19 rC
282 397 :M
0 G
f5_9 sf
(A)S
gR
gS 213 381 144 88 rC
0 G
.25 lw
258.5 446.5 276.5 464.5 8.5 @s
213.5 406.5 231.5 424.5 8.5 @s
213 381 144 40 rC
220 418 :M
f5_9 sf
(B)S
gR
gS 213 381 144 88 rC
213 381 144 80 rC
265 458 :M
0 G
f5_9 sf
(D)S
gR
gS 213 381 144 88 rC
0 G
273 400.25 -.25 .25 295.25 400 .25 273 400 @a
-.25 -.25 273.25 400.25 .25 .25 284 381 @b
284 381.25 -.25 .25 295.25 400 .25 284 381 @a
303 465.25 -.25 .25 325.25 465 .25 303 465 @a
-.25 -.25 303.25 465.25 .25 .25 314 446 @b
314 446.25 -.25 .25 325.25 465 .25 314 446 @a
.25 lw
213.5 426.5 18 18 rS
338.5 446.5 18 18 rS
283 401.25 -.25 .25 344.25 443 .25 283 401 @a
np 344 443 :M
339 443 :L
348 446 :L
342 439 :L
344 443 :L
eofill
283 401.25 -.25 .25 310.25 442 .25 283 401 @a
np 310 442 :M
306 440 :L
313 446 :L
310 437 :L
310 442 :L
eofill
-.25 -.25 270.25 441.25 .25 .25 283 401 @b
np 270 441 :M
268 437 :L
268 446 :L
274 438 :L
270 441 :L
eofill
-.25 -.25 238.25 410.25 .25 .25 283 401 @b
np 238 410 :M
241 406 :L
233 411 :L
242 412 :L
238 410 :L
eofill
-.25 -.25 237.25 433.25 .25 .25 283 401 @b
np 237 433 :M
239 428 :L
233 436 :L
242 433 :L
237 433 :L
eofill
gR
gS 0 44 552 663 rC
193 493 :M
0 G
f0_10 sf
-.019(Figure 4.11. Grouping by location and shape.)A
60 523 :M
f1_14 sf
-.001(4.7 Managing Layout when Concept Instances Change Size)A
60 553 :M
f1_12 sf
-.019(4.7.1 Introduction)A
78 583 :M
f0_10 sf
1.022 .102(Whenever visual concept instances change in size, problems of visual schema layout can occur: when)J
60 598 :M
.386 .039(instances grow, undesirable overlap may)J
227 598 :M
1.186 .119( result, and when instances shrink, the schema can become overly)J
60 613 :M
.351 .035(sparse. Changes in size can happen when mixed metaphors are used, or any time the size of a visual concept)J
60 628 :M
.094 .009(instance is variable. For example, if a single data model concept is mapped to by two visual concepts of widely)J
60 643 :M
.394 .039(varying sizes, changing the metaphor for a concept instance can cause a visual schema to become either more)J
60 658 :M
.601 .06(crowded or more sparse. Consider a new visual model )J
292 645 14 19 rC
302 656 :M
f4_14 sf
( )S
292 645 :M
psb
currentpoint pse
293 646 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
80 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(3) t
pse
psb
pse
gR
gS 0 44 552 663 rC
306 661 :M
0 G
f0_10 sf
.5 .05( )J
310 658 :M
1.11 .111(shown in Table 4.11, and mixed metaphor \(not)J
60 673 :M
-.046(shown\) that maps from )A
155 660 14 19 rC
165 671 :M
f4_14 sf
( )S
155 660 :M
psb
currentpoint pse
156 661 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
80 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(3) t
pse
psb
pse
gR
gS 0 44 552 663 rC
169 673 :M
0 G
f4_10 sf
( )S
f0_10 sf
-.048(to the data model )A
243 673 :M
f4_14 sf
(D)S
253 673 :M
f0_10 sf
( from section 4.2.4. )S
.357 .036( This visual model and metaphor represent)J
60 688 :M
f2_10 sf
-.066(entity-classes)A
114 688 :M
f0_10 sf
.603 .06( as either )J
156 688 :M
f2_10 sf
-.011(small-nodes)A
f0_10 sf
( or)S
216 688 :M
( )S
f2_10 sf
.059(big-nodes,)A
262 688 :M
f0_10 sf
.748 .075( and )J
f2_10 sf
.387(relationships)A
f0_10 sf
.534 .053( as )J
f2_10 sf
.405(edges.)A
f0_10 sf
.429 .043( A )J
400 688 :M
f2_10 sf
.296(small-node)A
f0_10 sf
.699 .07( is an oval just)J
60 703 :M
.574 .057(large enough to contain a single label, which has)J
263 703 :M
1.069 .107( the text \322P\323 or \322C\323 indicating whether the )J
f2_10 sf
1.735 .173(entity-class )J
f0_10 sf
.554(is)A
endp
%%Page: 25 25
%%BeginPageSetup
initializepage
(; page: 25 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(48)S
gR
gS 0 35 552 57 rC
60 47 :M
f0_10 sf
-.033(primitive or compound.)A
155 47 :M
.104 .01( A )J
f2_10 sf
.117(large-node)A
216 47 :M
f0_10 sf
.531 .053( is a larger rectangle holding labels for the name of the )J
f2_10 sf
.158(entity-class,)A
f0_10 sf
.393 .039( its)J
60 62 :M
-.023(kind \(represented as the strings \322Primitive\323)A
233 62 :M
.561 .056( and \322Compound\323\), and a comment field that displays the personal)J
60 77 :M
-.002(information of an annotation describing the )A
f2_10 sf
(entity-class. )S
gR
1 G
gS 73 92 57 26 rC
73 92 57 26 rF
gR
0 G
gS 0 0 552 730 rC
73 93 -1 1 130 92 1 73 92 @a
73 118 -1 1 130 117 1 73 117 @a
-1 -1 74 118 1 1 73 92 @b
76 95 51 20 rC
80 108 :M
f0_12 sf
-.065(Model )A
gR
1 G
gS 129 92 113 26 rC
129 92 113 26 rF
gR
0 G
gS 0 0 552 730 rC
129 93 -1 1 242 92 1 129 92 @a
129 118 -1 1 242 117 1 129 117 @a
132 95 107 20 rC
136 108 :M
f0_12 sf
-.141(Concept )A
179 97 19 16 rC
190 108 :M
f2_12 sf
( )S
f0_12 sf
( )S
179 97 :M
psb
currentpoint pse
180 98 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
(\() t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 241 92 94 26 rC
241 92 94 26 rF
gR
0 G
gS 0 0 552 730 rC
241 93 -1 1 335 92 1 241 92 @a
241 118 -1 1 335 117 1 241 117 @a
244 95 88 20 rC
248 108 :M
f0_12 sf
-.035(Attribute )A
294 97 30 16 rC
305 108 :M
f2_12 sf
( )S
f0_12 sf
( )S
294 97 :M
psb
currentpoint pse
295 98 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 42 /Times-Roman 0 0 0 50 T
(\() t
17 42 /Times-Italic 0 0 0 50 T
(P) t
48 42 /Times-Roman 0 0 0 50 T
(.) t
62 42 /Times-Italic 0 0 0 50 T
(A) t
93 42 /Times-Roman 0 0 0 50 T
(\)) t
pse
psb
pse
gR
1 G
gS 334 92 163 26 rC
334 92 163 26 rF
gR
0 G
gS 0 0 552 730 rC
334 93 -1 1 497 92 1 334 92 @a
-1 -1 497 118 1 1 496 92 @b
334 118 -1 1 497 117 1 334 117 @a
337 95 157 20 rC
341 108 :M
f0_12 sf
-.042(Attribute Values)A
421 95 48 19 rC
431 106 :M
f2_12 sf
( )S
f4_14 sf
( )S
f0_12 sf
( )S
421 95 :M
psb
currentpoint pse
422 96 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 96 /Times-Roman 0 0 0 100 T
(\() t
33 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(R) t
122 51 /Times-Roman 0 0 0 58 T
(*) t
151 96 /Times-Roman 0 0 0 100 T
(\() t
184 96 /Times-Italic 0 0 0 100 T
(P) t
244 96 /Times-Roman 0 0 0 100 T
(.) t
272 96 /Times-Italic 0 0 0 100 T
(A) t
332 96 /Times-Roman 0 0 0 100 T
(\)\)) t
pse
psb
pse
gR
1 G
gS 73 117 57 17 rC
73 117 57 17 rF
gR
0 G
gS 0 0 552 730 rC
73 118 -1 1 130 117 1 73 117 @a
-.25 -.25 129.25 133.25 .25 .25 129 117 @b
-1 -1 74 134 1 1 73 117 @b
80 120 14 11 rC
90 126 :M
f4_14 sf
( )S
80 115 :M
psb
currentpoint pse
81 116 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
80 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(3) t
pse
psb
pse
gR
1 G
gS 129 117 113 17 rC
129 117 113 17 rF
gR
0 G
gS 0 0 552 730 rC
129 118 -1 1 242 117 1 129 117 @a
-.25 -.25 129.25 133.25 .25 .25 129 117 @b
132 120 107 11 rC
136 128 :M
f0_12 sf
-.031(small-node )A
gR
1 G
gS 241 117 94 17 rC
241 117 94 17 rF
gR
0 G
gS 0 0 552 730 rC
241 118 -1 1 335 117 1 241 117 @a
244 120 88 11 rC
248 128 :M
f0_12 sf
-.064(shape )A
gR
1 G
gS 334 117 163 17 rC
334 117 163 17 rF
gR
0 G
gS 0 0 552 730 rC
334 118 -1 1 497 117 1 334 117 @a
-1 -1 497 134 1 1 496 117 @b
337 120 157 11 rC
341 128 :M
f0_12 sf
-.036({oval})A
gR
1 G
gS 73 133 57 17 rC
73 133 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 149.25 .25 .25 129 133 @b
-1 -1 74 150 1 1 73 133 @b
1 G
129 133 113 17 rC
129 133 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 129.25 149.25 .25 .25 129 133 @b
1 G
241 133 94 17 rC
241 133 94 17 rF
244 136 88 11 rC
248 144 :M
0 G
f0_12 sf
-.082(location )A
gR
1 G
gS 334 133 163 17 rC
334 133 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 150 1 1 496 133 @b
337 136 157 11 rC
341 144 :M
f0_12 sf
-.029(plane-points)A
gR
1 G
gS 73 149 57 17 rC
73 149 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 165.25 .25 .25 129 149 @b
-1 -1 74 166 1 1 73 149 @b
1 G
129 149 113 17 rC
129 149 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 129.25 165.25 .25 .25 129 149 @b
1 G
241 149 94 17 rC
241 149 94 17 rF
244 152 88 11 rC
248 160 :M
0 G
f0_12 sf
-.163(size )A
gR
1 G
gS 334 149 163 17 rC
334 149 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 166 1 1 496 149 @b
337 152 157 11 rC
341 160 :M
f0_12 sf
-.018({12 pixels})A
gR
1 G
gS 73 165 57 17 rC
73 165 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 181.25 .25 .25 129 165 @b
-1 -1 74 182 1 1 73 165 @b
1 G
129 165 113 17 rC
129 165 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 129.25 181.25 .25 .25 129 165 @b
1 G
241 165 94 17 rC
241 165 94 17 rF
244 168 88 11 rC
248 176 :M
0 G
f0_12 sf
-.131(color )A
gR
1 G
gS 334 165 163 17 rC
334 165 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 182 1 1 496 165 @b
337 168 157 11 rC
341 176 :M
f0_12 sf
-.029({white})A
gR
1 G
gS 73 181 57 17 rC
73 181 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 197.25 .25 .25 129 181 @b
-1 -1 74 198 1 1 73 181 @b
1 G
129 181 113 17 rC
129 181 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 129.25 197.25 .25 .25 129 181 @b
1 G
241 181 94 17 rC
241 181 94 17 rF
244 184 88 11 rC
248 192 :M
0 G
f0_12 sf
-.031(label-text )A
gR
1 G
gS 334 181 163 17 rC
334 181 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 198 1 1 496 181 @b
337 184 157 11 rC
341 192 :M
f0_12 sf
-.055({\322P\323, \322C\323})A
gR
1 G
gS 73 197 57 17 rC
73 197 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 213.25 .25 .25 129 197 @b
-1 -1 74 214 1 1 73 197 @b
1 G
129 197 113 17 rC
129 197 113 17 rF
gR
gS 0 0 552 730 rC
129 213.25 -.25 .25 241.25 213 .25 129 213 @a
-.25 -.25 129.25 213.25 .25 .25 129 197 @b
1 G
241 197 94 17 rC
241 197 94 17 rF
gR
gS 0 0 552 730 rC
241 213.25 -.25 .25 334.25 213 .25 241 213 @a
244 200 88 11 rC
248 208 :M
f0_12 sf
-.088(label-color )A
gR
1 G
gS 334 197 163 17 rC
334 197 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 214 1 1 496 197 @b
334 213.25 -.25 .25 496.25 213 .25 334 213 @a
337 200 157 11 rC
341 208 :M
f0_12 sf
-.084({black})A
gR
1 G
gS 73 213 57 17 rC
73 213 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 229.25 .25 .25 129 213 @b
-1 -1 74 230 1 1 73 213 @b
1 G
129 213 113 17 rC
129 213 113 17 rF
gR
gS 0 0 552 730 rC
129 213.25 -.25 .25 241.25 213 .25 129 213 @a
-.25 -.25 129.25 229.25 .25 .25 129 213 @b
132 216 107 11 rC
136 224 :M
f0_12 sf
-.093(big-node)A
gR
1 G
gS 241 213 94 17 rC
241 213 94 17 rF
gR
0 G
gS 0 0 552 730 rC
241 213.25 -.25 .25 334.25 213 .25 241 213 @a
244 216 88 11 rC
248 224 :M
f0_12 sf
-.08(shape)A
gR
1 G
gS 334 213 163 17 rC
334 213 163 17 rF
gR
0 G
gS 0 0 552 730 rC
334 213.25 -.25 .25 496.25 213 .25 334 213 @a
-1 -1 497 230 1 1 496 213 @b
337 216 157 11 rC
341 224 :M
f0_12 sf
-.048({rectangle})A
gR
1 G
gS 73 229 57 17 rC
73 229 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 245.25 .25 .25 129 229 @b
-1 -1 74 246 1 1 73 229 @b
1 G
129 229 113 17 rC
129 229 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 129.25 245.25 .25 .25 129 229 @b
1 G
241 229 94 17 rC
241 229 94 17 rF
244 232 88 11 rC
248 240 :M
0 G
f0_12 sf
-.082(location )A
gR
1 G
gS 334 229 163 17 rC
334 229 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 246 1 1 496 229 @b
337 232 157 11 rC
341 240 :M
f0_12 sf
-.029(plane-points)A
gR
1 G
gS 73 245 57 17 rC
73 245 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 261.25 .25 .25 129 245 @b
-1 -1 74 262 1 1 73 245 @b
1 G
129 245 113 17 rC
129 245 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 129.25 261.25 .25 .25 129 245 @b
1 G
241 245 94 17 rC
241 245 94 17 rF
244 248 88 11 rC
248 256 :M
0 G
f0_12 sf
-.131(color )A
gR
1 G
gS 334 245 163 17 rC
334 245 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 262 1 1 496 245 @b
337 248 157 11 rC
341 256 :M
f0_12 sf
-.029({white})A
gR
1 G
gS 73 261 57 17 rC
73 261 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 277.25 .25 .25 129 261 @b
-1 -1 74 278 1 1 73 261 @b
1 G
129 261 113 17 rC
129 261 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 129.25 277.25 .25 .25 129 261 @b
1 G
241 261 94 17 rC
241 261 94 17 rF
244 264 88 11 rC
248 272 :M
0 G
f0_12 sf
-.028(label1-text )A
gR
1 G
gS 334 261 163 17 rC
334 261 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 278 1 1 496 261 @b
337 264 157 11 rC
341 272 :M
f0_12 sf
-.331(text)A
gR
1 G
gS 73 277 57 17 rC
73 277 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 293.25 .25 .25 129 277 @b
-1 -1 74 294 1 1 73 277 @b
1 G
129 277 113 17 rC
129 277 113 17 rF
gR
gS 0 0 552 730 rC
129 293.25 -.25 .25 241.25 293 .25 129 293 @a
-.25 -.25 129.25 293.25 .25 .25 129 277 @b
1 G
241 277 94 17 rC
241 277 94 17 rF
gR
gS 0 0 552 730 rC
241 293.25 -.25 .25 334.25 293 .25 241 293 @a
244 280 88 11 rC
248 288 :M
f0_12 sf
-.088(label1-color)A
gR
1 G
gS 334 277 163 17 rC
334 277 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 294 1 1 496 277 @b
334 293.25 -.25 .25 496.25 293 .25 334 293 @a
337 280 157 11 rC
341 288 :M
f0_12 sf
-.084({black})A
gR
1 G
gS 73 293 57 17 rC
73 293 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 309.25 .25 .25 129 293 @b
-1 -1 74 310 1 1 73 293 @b
1 G
129 293 113 17 rC
129 293 113 17 rF
gR
gS 0 0 552 730 rC
129 309.25 -.25 .25 241.25 309 .25 129 309 @a
-.25 -.25 129.25 309.25 .25 .25 129 293 @b
1 G
241 293 94 17 rC
241 293 94 17 rF
gR
gS 0 0 552 730 rC
241 309.25 -.25 .25 334.25 309 .25 241 309 @a
244 296 88 11 rC
248 304 :M
f0_12 sf
-.031(label2-text)A
gR
1 G
gS 334 293 163 17 rC
334 293 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 310 1 1 496 293 @b
334 309.25 -.25 .25 496.25 309 .25 334 309 @a
337 296 157 11 rC
341 304 :M
f0_12 sf
-.034({\322Primitive\323, \322Compound\323})A
gR
1 G
gS 73 309 57 17 rC
73 309 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 325.25 .25 .25 129 309 @b
-1 -1 74 326 1 1 73 309 @b
1 G
129 309 113 17 rC
129 309 113 17 rF
gR
gS 0 0 552 730 rC
129 325.25 -.25 .25 241.25 325 .25 129 325 @a
-.25 -.25 129.25 325.25 .25 .25 129 309 @b
1 G
241 309 94 17 rC
241 309 94 17 rF
gR
gS 0 0 552 730 rC
241 325.25 -.25 .25 334.25 325 .25 241 325 @a
244 312 88 11 rC
248 320 :M
f0_12 sf
-.031(label3-text)A
gR
1 G
gS 334 309 163 17 rC
334 309 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 326 1 1 496 309 @b
334 325.25 -.25 .25 496.25 325 .25 334 325 @a
337 312 157 11 rC
341 320 :M
f0_12 sf
-.331(text)A
gR
1 G
gS 73 325 57 17 rC
73 325 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 341.25 .25 .25 129 325 @b
-1 -1 74 342 1 1 73 325 @b
1 G
129 325 113 17 rC
129 325 113 17 rF
gR
gS 0 0 552 730 rC
129 325.25 -.25 .25 241.25 325 .25 129 325 @a
-.25 -.25 129.25 341.25 .25 .25 129 325 @b
132 328 107 11 rC
136 336 :M
f0_12 sf
-.163(edge )A
gR
1 G
gS 241 325 94 17 rC
241 325 94 17 rF
gR
0 G
gS 0 0 552 730 rC
241 325.25 -.25 .25 334.25 325 .25 241 325 @a
244 328 88 11 rC
248 336 :M
f0_12 sf
-.064(source-location )A
gR
1 G
gS 334 325 163 17 rC
334 325 163 17 rF
gR
0 G
gS 0 0 552 730 rC
334 325.25 -.25 .25 496.25 325 .25 334 325 @a
-1 -1 497 342 1 1 496 325 @b
337 328 157 11 rC
341 336 :M
f0_12 sf
-.029(plane-points)A
gR
1 G
gS 73 341 57 17 rC
73 341 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 357.25 .25 .25 129 341 @b
-1 -1 74 358 1 1 73 341 @b
1 G
129 341 113 17 rC
129 341 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 129.25 357.25 .25 .25 129 341 @b
132 344 107 11 rC
136 352 :M
f0_12 sf
( )S
gR
1 G
gS 241 341 94 17 rC
241 341 94 17 rF
244 344 88 11 rC
248 352 :M
0 G
f0_12 sf
-.075(dest-location )A
gR
gS 334 341 163 17 rC
334 341 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 358 1 1 496 341 @b
337 344 157 11 rC
341 352 :M
f0_12 sf
-.029(plane-points)A
gR
1 G
gS 73 357 57 17 rC
73 357 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 373.25 .25 .25 129 357 @b
-1 -1 74 374 1 1 73 357 @b
1 G
129 357 113 17 rC
129 357 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 129.25 373.25 .25 .25 129 357 @b
132 360 107 11 rC
136 368 :M
f0_12 sf
( )S
gR
1 G
gS 241 357 94 17 rC
241 357 94 17 rF
244 360 88 11 rC
248 368 :M
0 G
f0_12 sf
-.131(color )A
gR
gS 334 357 163 17 rC
334 357 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 374 1 1 496 357 @b
337 360 157 11 rC
341 368 :M
f0_12 sf
-.028({red, orange, magenta, green})A
gR
1 G
gS 73 373 57 17 rC
73 373 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 389.25 .25 .25 129 373 @b
-1 -1 74 390 1 1 73 373 @b
1 G
129 373 113 17 rC
129 373 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 129.25 389.25 .25 .25 129 373 @b
132 376 107 11 rC
136 384 :M
f0_12 sf
( )S
gR
1 G
gS 241 373 94 17 rC
241 373 94 17 rF
244 376 88 11 rC
248 384 :M
0 G
f0_12 sf
-.071(from-node )A
gR
gS 334 373 163 17 rC
334 373 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 390 1 1 496 373 @b
337 376 157 11 rC
341 384 :M
f4_12 sf
(I)S
346 384 :M
f0_12 sf
-.021(\({small-node, big-node}\))A
gR
1 G
gS 73 389 57 17 rC
73 389 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 405.25 .25 .25 129 389 @b
-1 -1 74 406 1 1 73 389 @b
1 G
129 389 113 17 rC
129 389 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 129.25 405.25 .25 .25 129 389 @b
132 392 107 11 rC
136 400 :M
f0_12 sf
( )S
gR
1 G
gS 241 389 94 17 rC
241 389 94 17 rF
244 392 88 11 rC
248 400 :M
0 G
f0_12 sf
-.093(to-node )A
gR
gS 334 389 163 17 rC
334 389 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 406 1 1 496 389 @b
337 392 157 11 rC
341 400 :M
f4_12 sf
(I)S
346 400 :M
f0_12 sf
-.021(\({small-node, big-node}\))A
gR
1 G
gS 73 405 57 17 rC
73 405 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 421.25 .25 .25 129 405 @b
-1 -1 74 422 1 1 73 405 @b
1 G
129 405 113 17 rC
129 405 113 17 rF
gR
gS 0 0 552 730 rC
-.25 -.25 129.25 421.25 .25 .25 129 405 @b
132 408 107 11 rC
136 416 :M
f0_12 sf
( )S
gR
1 G
gS 241 405 94 17 rC
241 405 94 17 rF
244 408 88 11 rC
248 416 :M
0 G
f0_12 sf
-.031(label-text )A
gR
gS 334 405 163 17 rC
334 405 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 422 1 1 496 405 @b
337 408 157 11 rC
341 416 :M
f0_12 sf
-.331(text)A
gR
1 G
gS 73 421 57 17 rC
73 421 57 17 rF
gR
0 G
gS 0 0 552 730 rC
-.25 -.25 129.25 437.25 .25 .25 129 421 @b
73 438 -1 1 130 437 1 73 437 @a
-1 -1 74 438 1 1 73 421 @b
1 G
129 421 113 17 rC
129 421 113 17 rF
gR
gS 0 0 552 730 rC
129 438 -1 1 242 437 1 129 437 @a
-.25 -.25 129.25 437.25 .25 .25 129 421 @b
132 424 107 11 rC
136 432 :M
f0_12 sf
( )S
gR
1 G
gS 241 421 94 17 rC
241 421 94 17 rF
gR
0 G
gS 0 0 552 730 rC
241 438 -1 1 335 437 1 241 437 @a
244 424 88 11 rC
248 432 :M
f0_12 sf
-.088(label-color )A
gR
1 G
gS 334 421 163 17 rC
334 421 163 17 rF
gR
0 G
gS 0 0 552 730 rC
-1 -1 497 438 1 1 496 421 @b
334 438 -1 1 497 437 1 334 437 @a
337 424 157 11 rC
341 432 :M
f0_12 sf
-.084({black})A
gR
gS 0 438 552 208 rC
150 463 :M
f0_10 sf
-.008(Table 4.12. Selected attributes of the concepts in visual model )A
403 450 14 19 rC
413 461 :M
f4_14 sf
( )S
403 450 :M
psb
currentpoint pse
404 451 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
80 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(3) t
pse
psb
pse
gR
gS 0 438 552 208 rC
417 463 :M
f0_10 sf
(.)S
60 493 :M
.612 .061(An example schema in model )J
186 480 14 19 rC
196 491 :M
f4_14 sf
( )S
186 480 :M
psb
currentpoint pse
187 481 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.120301 0 0 0.120301 0 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 100 /ZapfChancery-MediumItalic 0 0 0 116 T
(G) t
80 119 /ZapfChancery-MediumItalic 0 0 0 75 T
(3) t
pse
psb
pse
gR
gS 0 438 552 208 rC
200 493 :M
f0_10 sf
.602 .06( is shown in Figure 4.12. Note that if the visual representation)J
462 493 :M
1.379 .138( any of the)J
60 508 :M
.545 .055(entity-classes is changed from small-node to big-node, it is clear that overlap with)J
400 508 :M
1.089 .109( other nodes might result.)J
60 523 :M
(Such overlap would be undesirable, hiding other nodes and obscuring the structure)S
.138 .014( of the schema. Undesirable)J
60 538 :M
1.761 .176(overlap is sufficiently common that we provide a pair of general mechanisms for managing it. These)J
60 553 :M
1.116 .112(mechanisms are necessary because the formalism does not capture behavior: it is possible to indicate that)J
60 568 :M
-.007(overlap is illegal using constraints, but it is not possible to specify what actions)A
377 568 :M
.555 .056( should take place when overlap)J
60 583 :M
(occurs. In addition to overlap, another problem that results from concept instances)S
.161 .016( changing size. When large)J
60 598 :M
.6 .06(concept instances get smaller, the schema becomes more sparse, and space is less well utilized. Ideally, any)J
60 613 :M
1.02 .102(solution for managing schemas that are too crowded will also help with schemas that are too sparse. The)J
60 628 :M
-.012(following subsections describe two heuristics for managing overlap when concept)A
388 628 :M
.442 .044( instances become larger, and)J
60 643 :M
-.008(utilizing empty space when concept instances become smaller.)A
endp
%%Page: 26 26
%%BeginPageSetup
initializepage
(; page: 26 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(49)S
gR
gS 97 58 375 215 rC
-78 -1 -1 1 -76 -1 1 -78 -2 @a
-78 -1 -1 1 -76 -1 1 -78 -2 @a
282 238.25 -.25 .25 352.25 238 .25 282 238 @a
282 238.25 -.25 .25 352.25 263 .25 282 238 @a
-.25 -.25 282.25 238.25 .25 .25 352 213 @b
1 G
307 253 40 10 rF
307 233 40 10 rF
317 218 30 10 rF
0 G
-.25 -.25 132.25 178.25 .25 .25 197 158 @b
132 178.25 -.25 .25 197.25 183 .25 132 178 @a
132 178.25 -.25 .25 202.25 208 .25 132 178 @a
1 G
162 158 20 15 rF
162 178 20 10 rF
152 193 40 10 rF
0 G
-.25 -.25 337.25 178.25 .25 .25 437 138 @b
-.25 -.25 337.25 178.25 .25 .25 437 163 @b
342 178.25 -.25 .25 437.25 188 .25 342 178 @a
337 178.25 -.25 .25 437.25 213 .25 337 178 @a
337 178.25 -.25 .25 437.25 238 .25 337 178 @a
1 G
392 143 25 15 rF
392 163 25 15 rF
382 178 45 15 rF
387 198 35 10 rF
387 213 30 10 rF
0 G
287 87.25 -.25 .25 377.25 87 .25 287 87 @a
1 G
302 78 60 15 rF
0 G
-.25 -.25 397.25 83.25 .25 .25 452 68 @b
397 88.25 -.25 .25 452.25 103 .25 397 88 @a
1 G
412 88 25 15 rF
417 68 15 15 rF
459 71 :M
0 G
f5_10 sf
(P)S
.5 G
0 G
.25 lw
19 14 462 67.5 @f
384 91 :M
(C)S
.5 G
0 G
377.5 80.5 396.5 94.5 6.5 @s
444 166 :M
(P)S
.5 G
0 G
19 14 447 162.5 @f
459 111 :M
(P)S
.5 G
0 G
19 14 462 107.5 @f
444 191 :M
(P)S
.5 G
0 G
19 14 447 187.5 @f
413 100 :M
f5_9 sf
-.333(Name)A
.5 G
417 80 :M
0 G
(Age)S
.5 G
1 G
112 83 175 50 rF
0 G
112.5 83.5 174 49 rS
122 95 :M
.055(Experiment)A
.5 G
122 110 :M
0 G
-.144(Compound)A
.5 G
122 125 :M
0 G
.148 .015(Information about Weather experiments)J
.5 G
304 91 :M
0 G
.429 .043(Head Scientist)J
.5 G
324 181 :M
0 G
f5_10 sf
(C)S
.5 G
0 G
317.5 170.5 336.5 184.5 6.5 @s
287 133.25 -.25 .25 323.25 169 .25 287 133 @a
119 181 :M
(C)S
.5 G
0 G
112.5 170.5 131.5 184.5 6.5 @s
-.25 -.25 122.25 170.25 .25 .25 122 133 @b
1 G
282 148 45 10 rF
288 154 :M
0 G
f5_9 sf
.248(Outputs)A
.5 G
1 G
107 148 30 10 rF
109 155 :M
0 G
.298(Inputs)A
.5 G
444 141 :M
0 G
f5_10 sf
(P)S
.5 G
0 G
19 14 447 137.5 @f
395 175 :M
f5_9 sf
-.166(Wind)A
.5 G
382 190 :M
0 G
.748 .075(Bar. Press.)J
.5 G
392 155 :M
0 G
-.125(Temp.)A
.5 G
392 205 :M
0 G
(Humidity)S
.5 G
390 220 :M
0 G
.166(Precip.)A
.5 G
444 216 :M
0 G
f5_10 sf
(P)S
.5 G
0 G
19 14 447 212.5 @f
444 241 :M
(P)S
.5 G
0 G
19 14 447 237.5 @f
164 170 :M
f5_9 sf
(Day)S
.5 G
163 185 :M
0 G
-.166(Hour)A
.5 G
157 200 :M
0 G
.141(Location)A
.5 G
204 161 :M
0 G
f5_10 sf
(P)S
.5 G
0 G
19 14 207 157.5 @f
204 186 :M
(P)S
.5 G
0 G
19 14 207 182.5 @f
359 266 :M
(P)S
.5 G
0 G
19 14 362 262.5 @f
310 260 :M
f5_9 sf
.06(Longitude)A
.5 G
313 242 :M
0 G
.141(Latitude)A
.5 G
314 225 :M
0 G
.142(Altitude)A
.5 G
122 220 :M
0 G
.141(Location)A
.5 G
122 235 :M
0 G
-.144(Compound)A
.5 G
122 250 :M
0 G
.076 .008(Describes where measurements taken)J
.5 G
0 G
112.5 208.5 169 49 rS
359 241 :M
f5_10 sf
(P)S
.5 G
0 G
19 14 362 237.5 @f
359 216 :M
(P)S
.5 G
0 G
19 14 362 212.5 @f
gR
gS 0 46 552 660 rC
194 300 :M
f0_10 sf
-.011(Figure 4.12. A sample schema in model )A
358 288 15 17 rC
369 299 :M
f0_7 sf
( )S
371 299 :M
f4_12 sf
( )S
358 288 :M
psb
currentpoint pse
359 289 :M
psb
translate currentpoint scale
1 setlinecap 0 setlinejoin 2 setmiterlimit
6 array currentmatrix aload pop pop pop abs exch abs add exch abs add exch abs add 2 exch div /onepx exch def
[ 0.238806 0 0 0.238806 1 1 ] concat
/T {/fsize exch def /funder exch 0 ne def /fital exch fsize mul 4 div def /fbold exch 0 ne def
/fmat [ fsize 0 fital fsize neg 0 0 ] def findfont fmat makefont setfont moveto} bind def
/t {funder {currentpoint 0 fsize 12 div rmoveto 2 index stringwidth rlineto fsize 24 div setlinewidth stroke moveto} if
fbold {currentpoint fsize 24 div 0 rmoveto 2 index show moveto} if show} bind def
0 47 /ZapfChancery-MediumItalic 0 0 0 50 T
(G) t
31 57 /Times-Roman 0 0 0 29 T
(3) t
pse
psb
pse
gR
gS 0 46 552 660 rC
373 300 :M
f0_10 sf
(.)S
78 329 :M
-.003(We have chosen to address these problems using approaches that are partially automated, i.e. they rely upon)A
60 344 :M
.523 .052(a certain degree of input from the user. We have found that users rely upon the relative locations of concept)J
60 359 :M
-.003(instances in a schema, so we want an approach that allows users to specify the layout of a schema and that keeps)A
60 374 :M
1.37 .137(the overall shape of the schema similar as concept instances change in size. Other work exists on fully)J
60 389 :M
.32 .032(automatic layout of trees and directed graphs [ET89, Mess88, Moe90], but this work has two limitations. The)J
60 404 :M
.795 .079(approach to trees considers user-specified information, but it is not sufficiently general to apply to arbitrary)J
60 419 :M
-.01(visual models, and the work on graphs produces unstable layouts, i.e., a small)A
371 419 :M
.654 .065( change in a graph can result in a)J
60 434 :M
-.003(large change in the layout. Unstable layout algorithms lose the important user-specified location information.)A
60 464 :M
f1_12 sf
-.009(4.7.2 A simple approach to manage overlap: Prevention & Plowing)A
78 494 :M
f0_10 sf
-.008(The simplest approach to managing overlap is to prevent it. Constraints can specify between what)A
472 494 :M
.287 .029( concepts)J
60 509 :M
.135 .013(is overlap forbidden, and whenever an operation would result in a schema with illegal overlap, that operation in)J
60 524 :M
.557 .056(not permitted. This solution is satisfactory for some operations, such as movement, but)J
423 524 :M
1.192 .119( is less adequate for)J
60 539 :M
.705 .07(others. For example, when the label of a )J
236 539 :M
f2_10 sf
-.078(big-node)A
272 539 :M
f0_10 sf
1.205 .121( is lengthened, making the rectangle wider, it would be)J
60 554 :M
.039 .004(unpleasant to have the system disallow the change because enough space is not available. This approach can be)J
60 569 :M
-.008(improved by pushing other things out of the way using a \322plowing\323 algorithm. Plowing, described)A
456 569 :M
.562 .056( generally by)J
60 584 :M
-.014(Ousterhout [Ous84], is an approach where overlapping items)A
304 584 :M
.637 .064( are pushed out of the way, just as a plow pushes)J
60 599 :M
-.006(soil. We have implemented plowing as follows:)A
96 626 :M
f8_10 sf
(- Consider a concept instance that has increased in size.)S
96 637 :M
(- Find all other instances that overlap the instance and should not.)S
96 648 :M
(- Divide the overlapping instances into 4 groups, those to move up,)S
109 659 :M
(down, right, or left, depending on the minimal amount of movement)S
109 670 :M
(required to eliminate the overlap by moving them in those)S
109 681 :M
(directions.)S
endp
%%Page: 27 27
%%BeginPageSetup
initializepage
(; page: 27 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(50)S
gR
gS 0 39 552 639 rC
96 48 :M
f8_10 sf
(- Move all members of the \322up\323 group upward the same amount,)S
109 59 :M
(sufficient to eliminate the overlap for all of them. If anything)S
109 70 :M
(overlaps a member of the \322up\323 group, move the new overlapping item)S
109 81 :M
(upward the same amount.)S
96 92 :M
(- Repeat the previous step for the down, left, and right groups.)S
78 117 :M
f0_10 sf
.265 .027(This approach may be extended to handle over-sparse graphs as well. Just as certain operations can result)J
60 132 :M
.564 .056(in overlap and concept instances being pushed from their locations via a plowing)J
396 132 :M
1.125 .113( algorithm, when the same)J
60 147 :M
.553 .055(operations make space available, neighbors of that space should be pulled in using plowing)J
438 147 :M
1.306 .131( in reverse. The)J
60 162 :M
-.009(reverse-plowing algorithm works as follows:)A
96 189 :M
f8_10 sf
(- Consider a concept instance that has decreased in size, and its)S
109 200 :M
(reduction in size horizontally and vertically.)S
96 211 :M
(- Find 4 groups of neighbors based on the original instance size:)S
109 222 :M
(those within one half of the original width left and right, and)S
109 233 :M
(those within half of the original height up and down. )S
96 244 :M
(- If the left group has neighbors within the same distance to its)S
109 255 :M
(left, add those neighbors to the left group. Repeat this step)S
109 266 :M
(recursively.)S
96 277 :M
(- Repeat the previous step for the top, bottom, and right groups.)S
96 288 :M
(- Given the reduction in size horizontally, move the left group that)S
109 299 :M
(same amount towards the shrinking instance. If any overlap)S
109 310 :M
(occurs, undo the move for the overlapping item and any member of)S
109 321 :M
(the left group to the left of it.)S
96 332 :M
(- Repeat the previous step for the right, top and bottom groups.)S
78 356 :M
f0_10 sf
1.229 .123(This algorithm is overzealous: it may pull back more instances than plowing will push. As a result,)J
60 371 :M
.126 .013(plowing and reverse plowing may make the schema more compact over time, changing the relative locations of)J
60 386 :M
.563 .056(different parts of the schema. For example, Figures 4.13 through 4.15 show a )J
387 386 :M
f2_10 sf
.116(small-node)A
f0_10 sf
.285 .028( changing to a )J
494 386 :M
f2_10 sf
-.035(big-)A
60 401 :M
.098(node)A
f0_10 sf
.31 .031( and back again. In some situations these problems are not serious, and the combination of prevention for)J
60 416 :M
1.494 .149(some operations and plowing/reverse-plowing for others is sufficient.)J
0 -4 rm
.373(7)A
0 4 rm
1.088 .109( In many situations, however, the)J
60 431 :M
.583 .058(limitations of the prevention/plowing approach would be unacceptable. For example, in many cases the user)J
60 446 :M
-.022(would like the overall shape of the)A
201 446 :M
.623 .062( schema to stay the same as instances change in size. The next subsection)J
60 461 :M
-.017(describes a more advanced solution that)A
220 461 :M
.61 .061( can preserve user specified layout as concept instances get larger and)J
60 476 :M
-.054(smaller. )A
61 524 70 85 rC
-1249 125 -1 1 -1247 125 1 -1249 124 @a
-1249 125 -1 1 -1247 125 1 -1249 124 @a
-.25 -.25 71.25 565.25 .25 .25 71 540 @b
81 574.25 -.25 .25 111.25 574 .25 81 574 @a
81 574.25 -.25 .25 111.25 594 .25 81 574 @a
68 577 :M
f5_10 sf
(C)S
.5 G
0 G
61.5 566.5 80.5 580.5 6.5 @s
68 537 :M
(P)S
.5 G
0 G
19 14 71 533.5 @f
118 577 :M
(P)S
.5 G
0 G
19 14 121 573.5 @f
118 602 :M
(C)S
.5 G
0 G
111.5 591.5 130.5 605.5 6.5 @s
gR
gS 200 509 170 100 rC
-1075 -15 -1 1 -1073 -15 1 -1075 -16 @a
-1075 -15 -1 1 -1073 -15 1 -1075 -16 @a
1 G
230 524 30 10 rF
242 522 :M
0 G
f5_10 sf
(P)S
.5 G
0 G
19 14 245 518.5 @f
292 602 :M
(C)S
.5 G
0 G
285.5 591.5 304.5 605.5 6.5 @s
1 G
225 534 135 50 rF
0 G
.25 lw
225.5 534.5 134 49 rS
230 546 :M
f5_9 sf
.498(Int)A
.5 G
230 561 :M
0 G
.064(Primitive)A
.5 G
230 576 :M
0 G
-.019(Hour of day measurement taken)A
.5 G
207 562 :M
0 G
f5_10 sf
(C)S
.5 G
0 G
1 lw
200.5 551.5 219.5 565.5 6.5 @s
-.25 -.25 210.25 549.25 .25 .25 240 524 @b
215 564.25 -.25 .25 285.25 594 .25 215 564 @a
220 559.25 -.25 .25 225.25 559 .25 220 559 @a
gR
gS 418 539 75 70 rC
-887 -115 -1 1 -885 -115 1 -887 -116 @a
-887 -115 -1 1 -885 -115 1 -887 -116 @a
1 G
418 539 30 10 rF
430 557 :M
0 G
f5_10 sf
(P)S
.5 G
0 G
19 14 433 553.5 @f
480 602 :M
(C)S
.5 G
0 G
473.5 591.5 492.5 605.5 6.5 @s
455 577 :M
(C)S
.5 G
0 G
448.5 566.5 467.5 580.5 6.5 @s
438 559.25 -.25 .25 448.25 569 .25 438 559 @a
463 579.25 -.25 .25 473.25 594 .25 463 579 @a
468 574.25 -.25 .25 473.25 574 .25 468 574 @a
480 577 :M
(P)S
.5 G
0 G
19 14 483 573.5 @f
gR
gS 0 39 552 639 rC
71 621 :M
f0_10 sf
-.055(Figure 4.13.)A
260 621 :M
-.055(Figure 4.14.)A
431 621 :M
-.055(Figure 4.15.)A
60 633 :M
-.024(A simple schema.)A
237 633 :M
f2_10 sf
-.094(small-node)A
f0_10 sf
-.09( to )A
294 633 :M
f2_10 sf
(big-node.)S
416 633 :M
f0_10 sf
-.065(Back to )A
f2_10 sf
-.073(small-node.)A
283 645 :M
f0_10 sf
( )S
gR
gS 0 0 552 730 rC
60 680.5 -.5 .5 172.5 680 .5 60 680 @a
0 684 552 28 rC
78 692 :M
f0_9 sf
.051(7)A
f0_10 sf
0 4 rm
.253 .025(Deciding which operations should)J
0 -4 rm
222 696 :M
1.255 .126( be disallowed, and which should result in plowing is a subject for)J
60 708 :M
-.004(user evaluation, and will not be considered further here.)A
endp
%%Page: 28 28
%%BeginPageSetup
initializepage
(; page: 28 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(51)S
gR
gS 0 39 552 673 rC
60 51 :M
f1_12 sf
-.01(4.7.3 A more advanced approach: move towards safe locations)A
78 81 :M
f0_10 sf
.518 .052(In some situations, the user specifies schema layout and would like the schema to return to that layout if)J
60 96 :M
-.011(concept instances change in size, then return to their original)A
303 96 :M
.609 .061( state. This subsection describes an approach that)J
60 111 :M
1.028 .103(uses user-specified layout information to guide automatic changes to the schema. The central idea of this)J
60 126 :M
.544 .054(approach is that the system should record certain user-specified non-overlapping layouts. Concept instance\325s)J
60 141 :M
-.008(locations in these layouts are called \322safe\323, because when everything is)A
345 141 :M
.642 .064( in its safe location, there is no overlap.)J
60 156 :M
.493 .049(In general, when overlap occurs, concept instances are)J
285 156 :M
1.206 .121( moved towards their safe locations until there is no)J
60 171 :M
-.014(overlap. This approach relies upon the following assumptions:)A
96 197 :M
f8_9 sf
-.404(- The cause of overlap and sparsity is that one or more concepts may not overlap,)A
109 207 :M
-.404(that they have representations of varying size, and that for each type the)A
109 217 :M
-.409(representations may be ordered by size.)A
96 227 :M
-.404(- The user wishes to move between several layouts of the schema, some more compact)A
109 237 :M
-.404(than others, but all in the same general area, and all having the same general)A
109 247 :M
-.478(shape.)A
96 257 :M
-.409(- The original layout is user specified.)A
60 281 :M
f0_10 sf
(This approach to layout management is best introduced through an example, given in the following subsection.)S
100 314 370 355 rC
-1 -1 -31999 -32000 1 1 -32000 -32001 @b
-32000 -32001 :M
/b4_Inc_state save def
/dict_count countdictstack def
/op_count count 1 sub def
userdict begin
/showpage {} def
0 setgray 0 setlinecap
1 setlinewidth 0 setlinejoin
10 setmiterlimit [] 0 setdash newpath
/languagelevel where
{pop languagelevel
1 ne
{false setstrokeadjust false setoverprint
} if
} if
psb
100 669 translate
1 1 neg scale
0 neg 0 neg translate
%!PS-Adobe-2.0 EPSF-1.2
%%Creator: SuperPaint
%%Title: Chapter 4 Figures-2.eps1
%%CreationDate: 7/27/95
%%BoundingBox: 0 0 370 355
%%Pages 1
%%DocumentFonts: Symbol
%%+Helvetica
%%DocumentNeededFonts: Symbol
%%+Helvetica
%%DocumentProcSets: BeachHead 2 1
%%DocumentSuppliedProcSets: BeachHead 2 1
%%EndComments
%BeginProcSet: BeachHead 2 5
% BeachHead - v2.5 Copyright 1991-1993 Aldus Corporation.
userdict /BeachHead known userdict begin /BeachHead 140 dict def BeachHead end begin /ta exch def /BeachHead_version 2 def /isWinPS false def /c 75 string def /sa 75 string def /f false def /g false def /h false def /i false def
/n true def /k 0.015 def /oldmatrix 6 array def
/newmatrix 6 array def /_doTexturePat false def /_strtxtmatrix null def /nulld { counttomark {null def} repeat pop } bind def mark /l /m /o /q /r /u /v /w /_cwidths /wa /x /y /z /A /B /D /E/F /G /H /I /J /K /M /N /O /P /Q /R /S /T /V /W /X /Y /ba /ca /da /ea /fa /ga
/ha /ia /ja /ka ta not{/la /ma}if /_strtxtmatrix nulld /ra 256 array def
ra dup dup 0 /Times-Roman findfont /Encoding get 0 128 getinterval putinterval
39 /quotesingle put 96 /grave put /Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave
/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute/ograve
/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis/dagger/degree/cent
/sterling/section/bullet/paragraph/germandbls/registered/copyright/trademark/acute
/dieresis/notequal/AE/Oslash/infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff
/summation/product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash/questiondown
/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft/guillemotright
/ellipsis/blank/Agrave/Atilde/Otilde/OE/oe/endash/emdash/quotedblleft/quotedblright
/quoteleft/quoteright/divide/lozenge/ydieresis/Ydieresis/fraction/currency/guilsinglleft
/guilsinglright/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave
/Oacute/Ocircumflex/apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde
/macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron
ra 128 128 getinterval astore pop /winvec 256 array def ra winvec copy pop winvec 15{dup}repeat 161 /ring put 178 /Scaron put 182 /eth put 184 /Thorn put 185 /thorn put 195 /scaron put 198 /Eth put 222 /hyphen put 223 /twosuperior put 225 /threesuperior put 240 /onequarter put 249 /onehalf put 250 /periodcentered put 252 /cedilla put 253 /multiply put 254 /Yacute put version cvr 51 ge { winvec 245 /onesuperior put winvec 251 /threequarters put winvec 255 /yacute put } if /d { 0 1 74 { c exch 0 put } for dup c cvs pop c } bind def /qa { 0 1 74 { sa exch 0 put } for dup sa cvs pop sa 74 1 put } bind def /e { d 74 2 put } bind def
/addoblique {userdict /BeachHead get begin /g true def end} bind def
/addheavy {userdict /BeachHead get begin /f true def end} bind def
/adduline {userdict /BeachHead get begin /h true def end} bind def
/findshadowfont { findoutlinefont userdict /BeachHead get begin /i true def /n true def end } bind def
/findoutlinefont { findbeachheadfont userdict /BeachHead get begin j /n true def end } bind def
/findbeachheadfont { userdict /BeachHead get begin /f false def /g false def /h false def /i false def dup findfont dup /FontType get 0 ne { /Encoding get dup 161 get exch 162 get /cent eq exch /exclamdown eq and { userdict /BeachHead get begin qa FontDirectory sa known { pop sa findfont } { findfont dup length 1 add dict /o exch def { 1 index
/FID ne 2 index /UniqueID ne and { o 3 1 roll put } { pop pop } ifelse
} forall /FontName sa dup length string copy def
o /Encoding isWinPS {winvec}{ra} ifelse put sa o definefont } ifelse end }{ findfont } ifelse }{ exch pop } ifelse end } bind def
/j { userdict /BeachHead get begin dup /FontName get e FontDirectory c known { pop pop c findfont } { exch dup /FontType get 0 eq { dup maxlength 2 add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse }forall currentdict end dup dup /FDepVector get [ exch {j} forall ] /FDepVector exch put exch e pop c exch definefont } { 12 dict begin dup /l exch def /FontType 3 def /FontMatrix [1 0 0 1 0 0] def /FontBBox [0 0 1 1] def /Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for dup exch maxlength 2 add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse }forall /PaintType 2 def /StrokeWidth 1 0 FontMatrix dtransform dup mul exch dup mul add sqrt .012 exch div def currentdict end /_dummy exch definefont /r exch def /m 1 string def /FontType 3 def /BuildChar { exch begin m 0 3 -1 roll put r setfont m stringwidth setcharwidth l setfont i { .05 -.05 moveto m show } if n { reversecolor 0 0 moveto m show reversecolor } if r setfont 0 0 moveto m show end } bind def currentdict end exch e pop c exch definefont } ifelse } ifelse end } bind def /EPSBegin { save userdict /BeachHead get begin /la exch def count /ma exch def end userdict /showpage {} put 0 setgray 0 setlinecap 1 setlinewidth
0 setlinejoin 10 setmiterlimit [] 0 setdash newpath } bind def /EPSEnd { userdict /BeachHead get begin count ma sub dup 0 gt {{pop}repeat} {pop}ifelse la end restore } bind def /cimage { userdict /BeachHead get begin { {readstring} } { {readhexstring} } ifelse /u exch def /colorimage where { pop 4 index dup string /v exch def dup string /w exch def dup string /x exch def dup string /y exch def string /z exch def { currentfile v u pop } { currentfile w u pop } { currentfile x u pop } { currentfile y u pop currentfile z u pop pop } 5 -1 roll { true 4 A } { true 4 /colorimage load exec } ifelse } { 4 index dup string /z exch def 4 mul string /B exch def { currentfile B u pop pop currentfile z u pop } exch { transimage } { /image load exec } ifelse } ifelse end } bind def /bhshow { userdict /BeachHead get begin h { gsave dup stringwidth pop (_) stringwidth pop div 1 scale currentpoint (_) show moveto grestore } if gsave g { [1 0 .17 1 0 0] concat } if f { /_x1 12 k mul def /_y1 12 k mul def currentpoint 3 copy _y1 add exch _x1 add exch moveto show 3 copy _y1
add exch _x1 sub exch moveto show 3 copy _y1 sub exch _x1 add exch moveto show 3 copy _y1 sub exch _x1 sub exch moveto show moveto } if show grestore end } bind def /C { D { gsave E F 3 index idtransform translate G 1 4 index 4 index {H} /image load exec grestore /I 0 def /G 0 def /D false def } if } bind def /transimage { userdict
/BeachHead get begin 2 index 8 ne { /image load exec } { 4 index cvi string /H exch def /J 0 string def /K 0 def /D false def /I 0 def /G 0 def 0 1 5 index 1 sub { /F exch def 0 1 6 index 1 sub { K J length ge { 1 index dup type /stringtype ne { exec } if /J exch def /K 0 def } if J K get /K K 1 add def dup 255 eq { pop pop C } { H I 3 -1 roll put /I I 1 add def /G G 1 add def D not { /E exch def /G 1 def /D true def } { pop } ifelse } ifelse } for C } for 5{pop}repeat } ifelse end } bind def /L { D { gsave E F 8 index idtransform translate I 1 8 9 index {M} {N} {O} {P} true 4 /colorimage load exec grestore /I 0 def /D false def } if } bind def /A { 9 index cvi dup string /M exch def dup string /N exch def dup string /O exch def string /P exch def /Q 0 string def /K 0 def /D false def /I 0 def /G 0 def 0 1 10 index 1 sub { /F exch def 0 1 11 index 1 sub { K Q length ge { 6 index exec /R exch def 5 index exec /S exch def 4 index exec /T exch def 3 index exec /Q exch def /K 0 def } if R K get S K get T K get Q K get
/K K 1 add def dup 0 eq 2 index 0 eq and 3 index 0 eq and 4 index 0 eq and { 5{pop}repeat L } { M I 6 -1 roll put N I 5 -1 roll put O I 4 -1 roll put P I 3 -1 roll put /I I 1 add def D not { /E exch def /D true def } { pop } ifelse } ifelse } for L } for
10{pop}repeat } bind def /bps 8 string def /bpm [8 0 0 8 0 0] def /bpp { bps } def /overlaybackpat { userdict /BeachHead get begin gsave setrgbcolor bps copy pop dup 0 get 8 div floor cvi 8 mul 1 index 2 get 8 div floor cvi 8 mul 2 index 1 get 8 div floor cvi 8 mul 8 4 index 3 get 8 div floor cvi 8 mul { 2 index 8 3 index { 1 index gsave translate 8 8 scale 8 8 false bpm /bpp load imagemask grestore } for pop } for pop pop pop grestore end } bind def /U { userdict /BeachHead get begin /V exch def /W exch def countdictstack save V 2 add 2 roll count V sub /X exch def /W load end { exec } stopped userdict /BeachHead get begin
/Y exch def count X sub { pop } repeat Y 3 1 roll restore countdictstack exch sub { end } repeat end } bind def /Zstr ( ) def /aa { moveto { ba setfont Zstr end gsave 0 setgray stringwidth grestore userdict /BeachHead get begin rmoveto /ca load null ne { /da da 1 add def da ea length 1 sub le { fa ea da get ca } if } { ax ay rmoveto fa ga eq { cx cy rmoveto } if } ifelse } stopped
currentdict userdict /BeachHead get ne { userdict /BeachHead get begin }if } bind def
/filltextpath2 { userdict /BeachHead get begin /p exch def /s exch def /ea exch def /fillProc exch def /ia exch def currentpoint
ia i and { ea s p krnshow } if moveto i /i false def currentpoint /m 1 string def /ya 0 def /t 0 def /za 0 def ea
{ m 0 3 -1 roll put newpath t za moveto m true charpath fillProc t s ya get add /t exch def ya 1 add /ya exch def
za s ya get add /za exch def ya 1 add /ya exch def } forall moveto /i exch def ia { n i /n false def /i false def ea s p krnshow /i exch def /n exch def } if end } bind def /filltextpath { userdict /BeachHead get begin /ea exch def
dup type dup /integertype eq exch /realtype eq or { /ay exch def /ax exch def /ga exch def /cy exch def /cx exch def /ca null def } { /wa 0 def /ca exch def } ifelse /ha exch def /ia exch def ia { i get { gsave 0 setgray /ca load null ne { /ca load ea kshow /wa 0 def } { cx cy ga ax ay ea awidthshow } ifelse grestore } if } if gsave currentfont ia { begin r FontMatrix makefont l FontMatrix makefont end } { null exch } ifelse /ja exch def /ka exch def /ba currentfont def _doTexturePat { systemdict /makepattern known } { false }ifelse { matrix currentmatrix _strtxtmatrix null ne { _strtxtmatrix setmatrix } if 1 -1 scale txTrnsX txTrnsY translate settexturepat setmatrix /da 0 def ea { /fa exch def Zstr 0 fa put ja setfont currentpoint Zstr show aa {exit} if } forall } { 10 setlinewidth /da 0 def currentpoint newpath 0 dup dup dup moveto lineto closepath moveto ea { /fa exch def Zstr 0 fa put currentpoint ja setfont count 1 add dup 1 roll Zstr true { charpath } stopped count count -1 roll sub { pop } repeat currentpoint {ha} 0 U pop newpath 0 dup dup dup moveto lineto closepath moveto
aa {exit} if } forall } ifelse grestore ka null ne { /wa 0 def gsave 0 setgray /da 0 def ea { /fa exch def Zstr 0 fa put ka setfont currentpoint Zstr show aa {exit} if } forall grestore } if /_doTexturePat false def /_strtxtmatrix null def end } bind def /reversecolor { 1 currentrgbcolor 1 index eq 3 1 roll eq and { currentgray sub } if setgray } bind def
/ftpkproc { pop Zstr 0 3 -1 roll put Zstr stringwidth neg exch neg exch rmoveto userdict /BeachHead get begin _cwidths wa get /wa wa 1 add def _cwidths wa get /wa wa 1 add def rmoveto end } bind def /xa { userdict /BeachHead get begin pop pop Zstr 0 3 -1 roll put currentpoint Zstr bhshow moveto _cwidths pa get /pa pa 1 add def _cwidths pa get /pa pa 1 add def rmoveto end } bind def /na[256{0}repeat]def mark 161 176 173 185 176 165 177 177 178 163 179 179 181 109 182 182 183 229 184 213 185 112 186 242 189 87 195 214 197 187 198 68 214 184 215 224 240 240
counttomark 2 div cvi {na 3 1 roll put} repeat pop /krnshow
{ dup type dup /integertype ne exch /realtype ne and {12} if /Symbol findfont exch scalefont /oa exch def /ua currentfont def /pa 0 def systemdict /cshow known currentfont /FontType get 0 eq and { /_cwidths exch def /xa load cshow } { exch userdict /BeachHead get begin h { /h false def gsave dup stringwidth pop (_) stringwidth pop div 1 scale currentpoint (_) show moveto grestore } if end { dup na exch get
dup 0 eq isWinPS or { pop Zstr 0 3 -1 roll put currentpoint Zstr userdict begin bhshow end moveto } { oa setfont Zstr 0 3 -1 roll put currentpoint Zstr bhshow moveto ua setfont pop } ifelse dup pa get /pa pa 1 add def 1 index pa get /pa pa 1 add def rmoveto } forall pop } ifelse } bind def /setcmykcolor where { pop /bhsetcmykcolor/setcmykcolor load def } {
/bhsetcmykcolor { 4 1 roll 3{ 3 index add neg 1 add dup 0 lt {pop 0}if 3 1 roll }repeat setrgbcolor pop }bind def }ifelse
end
%EndProcSet
%%EndProlog
%%BeginSetup
userdict/BeachHead get begin
%%EndSetup
%%Page One 1
newpath
0 0 moveto
0 355 lineto
370 355 lineto
370 0 lineto closepath clip
gsave
-693 365 translate
1 -1 scale
newpath 943.5 285.5 moveto
868.5 340.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 868.5 340.5 moveto
943.5 340.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 868.5 340.5 moveto
943.5 230.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 893 335 moveto 933 335 lineto 933 345 lineto 893 345 lineto 893 335 lineto closepath
1 setgray
eofill
newpath 893 300 moveto 933 300 lineto 933 310 lineto 893 310 lineto 893 300 lineto closepath
1 setgray
eofill
newpath 893 275 moveto 923 275 lineto 923 285 lineto 893 285 lineto 893 275 lineto closepath
1 setgray
eofill
newpath 758.5 165.5 moveto
788.5 215.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 738.5 165.5 moveto
758.5 255.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 718.5 165.5 moveto
718.5 315.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 758 170 moveto 778 170 lineto 778 185 lineto 758 185 lineto 758 170 lineto closepath
1 setgray
eofill
newpath 738 200 moveto 758 200 lineto 758 210 lineto 738 210 lineto 738 200 lineto closepath
1 setgray
eofill
newpath 703 225 moveto 743 225 lineto 743 235 lineto 703 235 lineto 703 225 lineto closepath
1 setgray
eofill
newpath 873.5 35.5 moveto
953.5 35.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 883 30 moveto 943 30 lineto 943 45 lineto 883 45 lineto 883 30 lineto closepath
1 setgray
eofill
newpath 698.5 10.5 moveto 872.5 10.5 lineto 872.5 59.5 lineto 698.5 59.5 lineto 698.5 10.5 lineto closepath
1 setgray
eofill
newpath 698.5 10.5 moveto 872.5 10.5 lineto 872.5 59.5 lineto 698.5 59.5 lineto 698.5 10.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
/Helvetica findbeachheadfont 9 scalefont setfont
gsave
708 22 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Experiment)
[6 0 5 0 5 0 5 0 3 0 2 0 7 0 5 0 5 0 3 0 ]
9 krnshow
grestore
gsave
708 37 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Compound)
[6 0 5 0 7 0 5 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
708 52 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Information about Weather experiments)
[3 0 5 0 3 0 5 0 3 0 7 0 5 0 3 0 2 0 5 0 5 0 2 0 5 0 5 0 5 0 5 0 3 0 2 0 8 0 5 0 5 0 3 0 5 0 5 0 3 0 2 0 5 0 5 0 5 0 5 0 3 0 2 0 7 0 5 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
883 37 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Head Scientist)
[6 0 5 0 5 0 5 0 2 0 6 0 5 0 2 0 5 0 5 0 3 0 2 0 5 0 3 0 ]
9 krnshow
grestore
newpath 873.5 60.5 moveto
908.5 95.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 718.5 60.5 moveto
718.5 115.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 868 75 moveto 913 75 lineto 913 85 lineto 868 85 lineto 868 75 lineto closepath
1 setgray
eofill
gsave
879 82 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Outputs)
[7 0 5 0 3 0 5 0 5 0 3 0 5 0 ]
9 krnshow
grestore
newpath 693 75 moveto 723 75 lineto 723 85 lineto 693 85 lineto 693 75 lineto closepath
1 setgray
eofill
gsave
705 82 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Inputs)
[3 0 5 0 5 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
760 182 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Day)
[6 0 5 0 5 0 ]
9 krnshow
grestore
gsave
739 212 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Hour)
[6 0 5 0 5 0 3 0 ]
9 krnshow
grestore
gsave
703 237 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Location)
[5 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
891 342 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Longitude)
[5 0 5 0 5 0 5 0 2 0 3 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
894 312 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Latitude)
[5 0 5 0 3 0 2 0 3 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
895 282 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Altitude)
[6 0 2 0 3 0 2 0 3 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
708 327 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Location)
[5 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
708 342 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Compound)
[6 0 5 0 7 0 5 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
708 357 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Describes where measurements taken)
[6 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 5 0 2 0 6 0 5 0 5 0 3 0 5 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 5 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
newpath 698.5 315.5 moveto 867.5 315.5 lineto 867.5 364.5 lineto 698.5 364.5 lineto 698.5 315.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
883 107 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Ouputs)
[7 0 5 0 5 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
883 122 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Compound)
[6 0 5 0 7 0 5 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
883 137 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(values coming from experiment)
[5 0 5 0 2 0 5 0 5 0 5 0 2 0 5 0 5 0 7 0 2 0 5 0 5 0 2 0 3 0 3 0 5 0 7 0 2 0 5 0 5 0 5 0 5 0 3 0 2 0 7 0 5 0 5 0 3 0 ]
9 krnshow
grestore
newpath 878.5 95.5 moveto 1012.5 95.5 lineto 1012.5 144.5 lineto 878.5 144.5 lineto 878.5 95.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
793 207 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Date)
[6 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
793 222 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
793 237 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Day that measurement taken)
[6 0 5 0 5 0 2 0 3 0 5 0 5 0 3 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
newpath 788.5 195.5 moveto 912.5 195.5 lineto 912.5 244.5 lineto 788.5 244.5 lineto 788.5 195.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
748 267 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Int)
[3 0 5 0 3 0 ]
9 krnshow
grestore
gsave
748 282 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
748 297 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Hour of day measurement taken)
[6 0 5 0 5 0 3 0 2 0 5 0 3 0 2 0 5 0 5 0 5 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
newpath 743.5 255.5 moveto 877.5 255.5 lineto 877.5 304.5 lineto 743.5 304.5 lineto 743.5 255.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
958 22 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Person)
[6 0 5 0 3 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
958 37 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Compound)
[6 0 5 0 7 0 5 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
958 52 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Describes an individual)
[6 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 5 0 2 0 5 0 5 0 2 0 2 0 5 0 5 0 2 0 5 0 2 0 5 0 5 0 5 0 2 0 ]
9 krnshow
grestore
newpath 953.5 10.5 moveto 1062.5 10.5 lineto 1062.5 59.5 lineto 953.5 59.5 lineto 953.5 10.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
948 217 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Int)
[3 0 5 0 3 0 ]
9 krnshow
grestore
gsave
948 232 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
948 247 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Meters above sea level)
[7 0 5 0 3 0 5 0 3 0 5 0 2 0 5 0 5 0 5 0 5 0 5 0 2 0 5 0 5 0 5 0 2 0 2 0 5 0 5 0 5 0 2 0 ]
9 krnshow
grestore
newpath 943.5 205.5 moveto 1047.5 205.5 lineto 1047.5 254.5 lineto 943.5 254.5 lineto 943.5 205.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
948 272 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Float)
[5 0 2 0 5 0 5 0 3 0 ]
9 krnshow
grestore
gsave
948 287 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
948 302 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Degrees North)
[6 0 5 0 5 0 3 0 5 0 5 0 5 0 2 0 6 0 5 0 3 0 3 0 5 0 ]
9 krnshow
grestore
newpath 943.5 260.5 moveto 1012.5 260.5 lineto 1012.5 309.5 lineto 943.5 309.5 lineto 943.5 260.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
948 327 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Float)
[5 0 2 0 5 0 5 0 3 0 ]
9 krnshow
grestore
gsave
948 342 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
948 357 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Degrees West)
[6 0 5 0 5 0 3 0 5 0 5 0 5 0 2 0 8 0 5 0 5 0 3 0 ]
9 krnshow
grestore
newpath 943.5 315.5 moveto 1007.5 315.5 lineto 1007.5 364.5 lineto 943.5 364.5 lineto 943.5 315.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
708 127 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Inputs)
[3 0 5 0 5 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
708 142 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Compound)
[6 0 5 0 7 0 5 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
708 157 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(values going in to experiment)
[5 0 5 0 2 0 5 0 5 0 5 0 2 0 5 0 5 0 2 0 5 0 5 0 2 0 2 0 5 0 2 0 3 0 5 0 2 0 5 0 5 0 5 0 5 0 3 0 2 0 7 0 5 0 5 0 3 0 ]
9 krnshow
grestore
newpath 703.5 115.5 moveto 827.5 115.5 lineto 827.5 164.5 lineto 703.5 164.5 lineto 703.5 115.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
newpath 923.5 115.5 moveto
853.5 115.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 853.5 115.5 moveto
923.5 140.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 853.5 115.5 moveto
923.5 90.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 878 130 moveto 918 130 lineto 918 140 lineto 878 140 lineto 878 130 lineto closepath
1 setgray
eofill
newpath 878 110 moveto 918 110 lineto 918 120 lineto 878 120 lineto 878 110 lineto closepath
1 setgray
eofill
newpath 888 95 moveto 918 95 lineto 918 105 lineto 888 105 lineto 888 95 lineto closepath
1 setgray
eofill
newpath 768.5 85.5 moveto
833.5 65.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 768.5 85.5 moveto
833.5 90.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 768.5 85.5 moveto
833.5 110.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 798 65 moveto 818 65 lineto 818 80 lineto 798 80 lineto 798 65 lineto closepath
1 setgray
eofill
newpath 798 85 moveto 818 85 lineto 818 95 lineto 798 95 lineto 798 85 lineto closepath
1 setgray
eofill
newpath 788 100 moveto 828 100 lineto 828 110 lineto 788 110 lineto 788 100 lineto closepath
1 setgray
eofill
newpath 873.5 35.5 moveto
953.5 35.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 883 25 moveto 943 25 lineto 943 40 lineto 883 40 lineto 883 25 lineto closepath
1 setgray
eofill
/Helvetica findbeachheadfont 10 scalefont setfont
gsave
960 38 translate 1 -1 scale 0 0 moveto
0 setgray
(C)
[7 0 ]
10 krnshow
grestore
newpath 953.5 36 moveto 962 36 8.5 180 270 arc
964 27.5 lineto 964 36 8.5 270 0 arc
972.5 33 lineto 964 33 8.5 0 90 arc
962 41.5 lineto 962 33 8.5 90 180 arc
953.5 36 lineto closepath
0 setgray
1 setlinewidth stroke
/Helvetica findbeachheadfont 9 scalefont setfont
gsave
883 37 translate 1 -1 scale 0 0 moveto
0 setgray
(Head Scientist)
[6 0 5 0 5 0 5 0 2 0 6 0 5 0 2 0 5 0 5 0 3 0 2 0 5 0 3 0 ]
9 krnshow
grestore
/Helvetica findbeachheadfont 10 scalefont setfont
gsave
960 88 translate 1 -1 scale 0 0 moveto
0 setgray
(C)
[7 0 ]
10 krnshow
grestore
newpath 953.5 86 moveto 962 86 8.5 180 270 arc
964 77.5 lineto 964 86 8.5 270 0 arc
972.5 83 lineto 964 83 8.5 0 90 arc
962 91.5 lineto 962 83 8.5 90 180 arc
953.5 86 lineto closepath
0 setgray
1 setlinewidth stroke
newpath 873.5 35.5 moveto
959.5 76.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
gsave
755 88 translate 1 -1 scale 0 0 moveto
0 setgray
(C)
[7 0 ]
10 krnshow
grestore
newpath 748.5 86 moveto 757 86 8.5 180 270 arc
759 77.5 lineto 759 86 8.5 270 0 arc
767.5 83 lineto 759 83 8.5 0 90 arc
757 91.5 lineto 757 83 8.5 90 180 arc
748.5 86 lineto closepath
0 setgray
1 setlinewidth stroke
newpath 853.5 35.5 moveto
758.5 77.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 898 50 moveto 943 50 lineto 943 60 lineto 898 60 lineto 898 50 lineto closepath
1 setgray
eofill
/Helvetica findbeachheadfont 9 scalefont setfont
gsave
899 57 translate 1 -1 scale 0 0 moveto
0 setgray
(Outputs)
[7 0 5 0 3 0 5 0 5 0 3 0 5 0 ]
9 krnshow
grestore
newpath 803 45 moveto 833 45 lineto 833 55 lineto 803 55 lineto 803 45 lineto closepath
1 setgray
eofill
gsave
805 52 translate 1 -1 scale 0 0 moveto
0 setgray
(Inputs)
[3 0 5 0 5 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
800 77 translate 1 -1 scale 0 0 moveto
0 setgray
(Day)
[6 0 5 0 5 0 ]
9 krnshow
grestore
gsave
799 92 translate 1 -1 scale 0 0 moveto
0 setgray
(Hour)
[6 0 5 0 5 0 3 0 ]
9 krnshow
grestore
gsave
793 107 translate 1 -1 scale 0 0 moveto
0 setgray
(Location)
[5 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
/Helvetica findbeachheadfont 10 scalefont setfont
gsave
840 68 translate 1 -1 scale 0 0 moveto
0 setgray
(P)
[7 0 ]
10 krnshow
grestore
newpath matrix currentmatrix
1.357 1 scale
621.158 64.5 7 0 360 arc
setmatrix
closepath
0 setgray
1 setlinewidth stroke
gsave
840 93 translate 1 -1 scale 0 0 moveto
0 setgray
(P)
[7 0 ]
10 krnshow
grestore
newpath matrix currentmatrix
1.357 1 scale
621.158 89.5 7 0 360 arc
setmatrix
closepath
0 setgray
1 setlinewidth stroke
gsave
930 143 translate 1 -1 scale 0 0 moveto
0 setgray
(P)
[7 0 ]
10 krnshow
grestore
newpath matrix currentmatrix
1.357 1 scale
687.474 139.5 7 0 360 arc
setmatrix
closepath
0 setgray
1 setlinewidth stroke
/Helvetica findbeachheadfont 9 scalefont setfont
gsave
881 137 translate 1 -1 scale 0 0 moveto
0 setgray
(Longitude)
[5 0 5 0 5 0 5 0 2 0 3 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
884 117 translate 1 -1 scale 0 0 moveto
0 setgray
(Latitude)
[5 0 5 0 3 0 2 0 3 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
885 102 translate 1 -1 scale 0 0 moveto
0 setgray
(Altitude)
[6 0 2 0 3 0 2 0 3 0 5 0 5 0 5 0 ]
9 krnshow
grestore
/Helvetica findbeachheadfont 10 scalefont setfont
gsave
930 118 translate 1 -1 scale 0 0 moveto
0 setgray
(P)
[7 0 ]
10 krnshow
grestore
newpath matrix currentmatrix
1.357 1 scale
687.474 114.5 7 0 360 arc
setmatrix
closepath
0 setgray
1 setlinewidth stroke
gsave
930 93 translate 1 -1 scale 0 0 moveto
0 setgray
(P)
[7 0 ]
10 krnshow
grestore
newpath matrix currentmatrix
1.357 1 scale
687.474 89.5 7 0 360 arc
setmatrix
closepath
0 setgray
1 setlinewidth stroke
gsave
860 38 translate 1 -1 scale 0 0 moveto
0 setgray
(C)
[7 0 ]
10 krnshow
grestore
newpath 853.5 36 moveto 862 36 8.5 180 270 arc
864 27.5 lineto 864 36 8.5 270 0 arc
872.5 33 lineto 864 33 8.5 0 90 arc
862 41.5 lineto 862 33 8.5 90 180 arc
853.5 36 lineto closepath
0 setgray
1 setlinewidth stroke
gsave
840 118 translate 1 -1 scale 0 0 moveto
0 setgray
(C)
[7 0 ]
10 krnshow
grestore
newpath 833.5 116 moveto 842 116 8.5 180 270 arc
844 107.5 lineto 844 116 8.5 270 0 arc
852.5 113 lineto 844 113 8.5 0 90 arc
842 121.5 lineto 842 113 8.5 90 180 arc
833.5 116 lineto closepath
0 setgray
1 setlinewidth stroke
grestore
showpage
%%Trailer
end
pse
count op_count sub {pop} repeat
countdictstack dict_count sub {end} repeat
b4_Inc_state restore
gR
gS 0 39 552 673 rC
140 693 :M
f0_10 sf
-.013(Figure 4.16. The big schema layout and small schema layout, overlayed.)A
endp
%%Page: 29 29
%%BeginPageSetup
initializepage
(; page: 29 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(52)S
gR
gS 0 42 552 551 rC
60 54 :M
f0_12 sf
-.013(4.7.3.1 A simple example)A
78 84 :M
f0_10 sf
.64 .064(Consider a simplified version of the schema in Figure 4.12. Through some mechanism \(to be explained)J
60 99 :M
1.706 .171(later\), the user specifies a non-overlapping layout for the entire schema when all the )J
438 99 :M
f2_10 sf
-.066(entity-classes)A
492 99 :M
f0_10 sf
1.766 .177( are)J
60 114 :M
.52 .052(represented as )J
f2_10 sf
.135(small-nodes)A
f0_10 sf
.463 .046( \(referred to as the \322small schema layout\323\),)J
f2_10 sf
.077 .008( )J
352 114 :M
f0_10 sf
.039 .004(and another)J
400 114 :M
1.258 .126( such layout when all the)J
60 129 :M
f2_10 sf
-.066(entity-classes)A
114 129 :M
f0_10 sf
-.049( are shown as )A
171 129 :M
f2_10 sf
.121(big-nodes)A
f0_10 sf
.398 .04( \(the \322big schema layout\323\). Figure 4.16 shows these two layouts, one on)J
60 144 :M
.612 .061(top of the other. These two layouts are recorded by the system.)J
326 144 :M
1.257 .126( For each concept instance, the location it)J
60 159 :M
-.007(occupied in the big schema layout will be called its big-safe location, and its location in the small schema)A
482 159 :M
.315 .032( layout)J
60 174 :M
-.014(will be called its small-safe location. The word \322safe\323 is used in these)A
341 174 :M
.629 .063( terms because in the two extreme cases,)J
60 189 :M
.578 .058(of the biggest schema and the smallest schema, those locations were safe with respect)J
416 189 :M
1.298 .13( to overlap with other)J
60 204 :M
.399 .04(concept instances. No two concept instances are allowed to have overlapping big-safe or small-safe locations)J
60 219 :M
-.014(\(though big-safe locations may overlap with small-safe locations\).)A
78 234 :M
.153 .015(This layout information is used as follows. Consider starting from the small schema. Whenever a concept)J
60 249 :M
-.004(instance changes representation from small to big, if it causes overlap in its new location:)A
96 275 :M
f8_9 sf
-.404(- The items it overlaps are moved on a straight line from their current location)A
109 285 :M
-.404(toward their big-safe locations until they get there, or until they no longer)A
109 295 :M
-.409(overlap anything, whichever comes first. )A
96 305 :M
-.404(- If they get to their big-safe locations and still overlap other concept)A
109 315 :M
-.405(instances, those others are moved towards their big-safe locations. )A
96 325 :M
-.405(- This process is repeated until there is no more overlap. )A
60 349 :M
f0_10 sf
-.012(For example, consider the simple schema in Figure 4.17. If the )A
316 349 :M
f2_10 sf
.092(small-node)A
f0_10 sf
.357 .036( representing hours were changed to)J
60 364 :M
-.938(a )A
67 364 :M
f2_10 sf
-.015(big-node,)A
f0_10 sf
-.014( it would cause its neighboring )A
231 364 :M
f2_10 sf
.116(small-nodes)A
f0_10 sf
.442 .044( to be moved downward toward their big-safe locations,)J
60 379 :M
-.017(as shown in Figure 4.18. If subsequently)A
225 379 :M
.206 .021( the )J
f2_10 sf
.133(small-node)A
f0_10 sf
.43 .043( representing inputs were changed to a )J
f2_10 sf
.127(big-node,)A
f0_10 sf
.422 .042( then)J
60 394 :M
-.239(the )A
75 394 :M
f2_10 sf
-.078(big-node)A
111 394 :M
f0_10 sf
-.02( representing hours would be moved towards its)A
303 394 :M
.592 .059( big-safe location. This would cause it to overlap)J
60 409 :M
.121 .012(with the two )J
114 409 :M
f2_10 sf
-.075(small-nodes,)A
165 409 :M
f0_10 sf
.554 .055( causing them to be moved towards their big-safe locations. One of the two )J
f2_10 sf
.205(small-)A
60 424 :M
.227(nodes)A
f0_10 sf
.679 .068( can only be moved a short distance before it reaches its big-safe location, causing the )J
448 424 :M
f2_10 sf
-.078(big-node)A
484 424 :M
f0_10 sf
1.513 .151( to be)J
60 439 :M
.52 .052(moved further. The resulting schema is shown in Figure 4.19. If the other two )J
f2_10 sf
.172(small-nodes)A
f0_10 sf
.614 .061( were)J
465 439 :M
.887 .089( expanded,)J
60 454 :M
-.014(then the schema would be close to its original big-layout.)A
78 469 :M
.038 .004(Available space is managed using a similar approach. Whenever a concept instance changes representation)J
60 484 :M
.049 .005(from a )J
90 484 :M
f2_10 sf
-.078(big-node)A
126 484 :M
f0_10 sf
.652 .065( to a )J
149 484 :M
f2_10 sf
-.093(small-node,)A
196 484 :M
f0_10 sf
.59 .059(it is moved toward its small-safe location until it gets there or finds another)J
60 499 :M
.813 .081(node in the way, at which point it stops. This process frees space, so any neighboring nodes are moved \(if)J
60 514 :M
-.014(necessary\) toward their own small-safe locations.)A
78 529 :M
1.343 .134(This example explained the gist of the move-toward-safe-locations approach. The next two sections)J
60 544 :M
.576 .058(describe in more detail how the safe locations are defined, and how the layout algorithm)J
427 544 :M
1.038 .104( uses safe locations)J
60 559 :M
-.004(when overlap and sparsity is detected.)A
endp
%%Page: 30 30
%%BeginPageSetup
initializepage
(; page: 30 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(53)S
gR
gS 170 78 230 240 rC
-1 -1 -31999 -32000 1 1 -32000 -32001 @b
-32000 -32001 :M
/b4_Inc_state save def
/dict_count countdictstack def
/op_count count 1 sub def
userdict begin
/showpage {} def
0 setgray 0 setlinecap
1 setlinewidth 0 setlinejoin
10 setmiterlimit [] 0 setdash newpath
/languagelevel where
{pop languagelevel
1 ne
{false setstrokeadjust false setoverprint
} if
} if
psb
170 318 translate
1 1 neg scale
0 neg 0 neg translate
%!PS-Adobe-2.0 EPSF-1.2
%%Creator: SuperPaint
%%Title: SampleLayout1.eps
%%CreationDate: 8/19/95
%%BoundingBox: 0 0 230 240
%%Pages 1
%%DocumentFonts: Symbol
%%+Helvetica
%%DocumentNeededFonts: Symbol
%%+Helvetica
%%DocumentProcSets: BeachHead 2 1
%%DocumentSuppliedProcSets: BeachHead 2 1
%%EndComments
%BeginProcSet: BeachHead 2 5
% BeachHead - v2.5 Copyright 1991-1993 Aldus Corporation.
userdict /BeachHead known userdict begin /BeachHead 140 dict def BeachHead end begin /ta exch def /BeachHead_version 2 def /isWinPS false def /c 75 string def /sa 75 string def /f false def /g false def /h false def /i false def
/n true def /k 0.015 def /oldmatrix 6 array def
/newmatrix 6 array def /_doTexturePat false def /_strtxtmatrix null def /nulld { counttomark {null def} repeat pop } bind def mark /l /m /o /q /r /u /v /w /_cwidths /wa /x /y /z /A /B /D /E/F /G /H /I /J /K /M /N /O /P /Q /R /S /T /V /W /X /Y /ba /ca /da /ea /fa /ga
/ha /ia /ja /ka ta not{/la /ma}if /_strtxtmatrix nulld /ra 256 array def
ra dup dup 0 /Times-Roman findfont /Encoding get 0 128 getinterval putinterval
39 /quotesingle put 96 /grave put /Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave
/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute/ograve
/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis/dagger/degree/cent
/sterling/section/bullet/paragraph/germandbls/registered/copyright/trademark/acute
/dieresis/notequal/AE/Oslash/infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff
/summation/product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash/questiondown
/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft/guillemotright
/ellipsis/blank/Agrave/Atilde/Otilde/OE/oe/endash/emdash/quotedblleft/quotedblright
/quoteleft/quoteright/divide/lozenge/ydieresis/Ydieresis/fraction/currency/guilsinglleft
/guilsinglright/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave
/Oacute/Ocircumflex/apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde
/macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron
ra 128 128 getinterval astore pop /winvec 256 array def ra winvec copy pop winvec 15{dup}repeat 161 /ring put 178 /Scaron put 182 /eth put 184 /Thorn put 185 /thorn put 195 /scaron put 198 /Eth put 222 /hyphen put 223 /twosuperior put 225 /threesuperior put 240 /onequarter put 249 /onehalf put 250 /periodcentered put 252 /cedilla put 253 /multiply put 254 /Yacute put version cvr 51 ge { winvec 245 /onesuperior put winvec 251 /threequarters put winvec 255 /yacute put } if /d { 0 1 74 { c exch 0 put } for dup c cvs pop c } bind def /qa { 0 1 74 { sa exch 0 put } for dup sa cvs pop sa 74 1 put } bind def /e { d 74 2 put } bind def
/addoblique {userdict /BeachHead get begin /g true def end} bind def
/addheavy {userdict /BeachHead get begin /f true def end} bind def
/adduline {userdict /BeachHead get begin /h true def end} bind def
/findshadowfont { findoutlinefont userdict /BeachHead get begin /i true def /n true def end } bind def
/findoutlinefont { findbeachheadfont userdict /BeachHead get begin j /n true def end } bind def
/findbeachheadfont { userdict /BeachHead get begin /f false def /g false def /h false def /i false def dup findfont dup /FontType get 0 ne { /Encoding get dup 161 get exch 162 get /cent eq exch /exclamdown eq and { userdict /BeachHead get begin qa FontDirectory sa known { pop sa findfont } { findfont dup length 1 add dict /o exch def { 1 index
/FID ne 2 index /UniqueID ne and { o 3 1 roll put } { pop pop } ifelse
} forall /FontName sa dup length string copy def
o /Encoding isWinPS {winvec}{ra} ifelse put sa o definefont } ifelse end }{ findfont } ifelse }{ exch pop } ifelse end } bind def
/j { userdict /BeachHead get begin dup /FontName get e FontDirectory c known { pop pop c findfont } { exch dup /FontType get 0 eq { dup maxlength 2 add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse }forall currentdict end dup dup /FDepVector get [ exch {j} forall ] /FDepVector exch put exch e pop c exch definefont } { 12 dict begin dup /l exch def /FontType 3 def /FontMatrix [1 0 0 1 0 0] def /FontBBox [0 0 1 1] def /Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for dup exch maxlength 2 add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse }forall /PaintType 2 def /StrokeWidth 1 0 FontMatrix dtransform dup mul exch dup mul add sqrt .012 exch div def currentdict end /_dummy exch definefont /r exch def /m 1 string def /FontType 3 def /BuildChar { exch begin m 0 3 -1 roll put r setfont m stringwidth setcharwidth l setfont i { .05 -.05 moveto m show } if n { reversecolor 0 0 moveto m show reversecolor } if r setfont 0 0 moveto m show end } bind def currentdict end exch e pop c exch definefont } ifelse } ifelse end } bind def /EPSBegin { save userdict /BeachHead get begin /la exch def count /ma exch def end userdict /showpage {} put 0 setgray 0 setlinecap 1 setlinewidth
0 setlinejoin 10 setmiterlimit [] 0 setdash newpath } bind def /EPSEnd { userdict /BeachHead get begin count ma sub dup 0 gt {{pop}repeat} {pop}ifelse la end restore } bind def /cimage { userdict /BeachHead get begin { {readstring} } { {readhexstring} } ifelse /u exch def /colorimage where { pop 4 index dup string /v exch def dup string /w exch def dup string /x exch def dup string /y exch def string /z exch def { currentfile v u pop } { currentfile w u pop } { currentfile x u pop } { currentfile y u pop currentfile z u pop pop } 5 -1 roll { true 4 A } { true 4 /colorimage load exec } ifelse } { 4 index dup string /z exch def 4 mul string /B exch def { currentfile B u pop pop currentfile z u pop } exch { transimage } { /image load exec } ifelse } ifelse end } bind def /bhshow { userdict /BeachHead get begin h { gsave dup stringwidth pop (_) stringwidth pop div 1 scale currentpoint (_) show moveto grestore } if gsave g { [1 0 .17 1 0 0] concat } if f { /_x1 12 k mul def /_y1 12 k mul def currentpoint 3 copy _y1 add exch _x1 add exch moveto show 3 copy _y1
add exch _x1 sub exch moveto show 3 copy _y1 sub exch _x1 add exch moveto show 3 copy _y1 sub exch _x1 sub exch moveto show moveto } if show grestore end } bind def /C { D { gsave E F 3 index idtransform translate G 1 4 index 4 index {H} /image load exec grestore /I 0 def /G 0 def /D false def } if } bind def /transimage { userdict
/BeachHead get begin 2 index 8 ne { /image load exec } { 4 index cvi string /H exch def /J 0 string def /K 0 def /D false def /I 0 def /G 0 def 0 1 5 index 1 sub { /F exch def 0 1 6 index 1 sub { K J length ge { 1 index dup type /stringtype ne { exec } if /J exch def /K 0 def } if J K get /K K 1 add def dup 255 eq { pop pop C } { H I 3 -1 roll put /I I 1 add def /G G 1 add def D not { /E exch def /G 1 def /D true def } { pop } ifelse } ifelse } for C } for 5{pop}repeat } ifelse end } bind def /L { D { gsave E F 8 index idtransform translate I 1 8 9 index {M} {N} {O} {P} true 4 /colorimage load exec grestore /I 0 def /D false def } if } bind def /A { 9 index cvi dup string /M exch def dup string /N exch def dup string /O exch def string /P exch def /Q 0 string def /K 0 def /D false def /I 0 def /G 0 def 0 1 10 index 1 sub { /F exch def 0 1 11 index 1 sub { K Q length ge { 6 index exec /R exch def 5 index exec /S exch def 4 index exec /T exch def 3 index exec /Q exch def /K 0 def } if R K get S K get T K get Q K get
/K K 1 add def dup 0 eq 2 index 0 eq and 3 index 0 eq and 4 index 0 eq and { 5{pop}repeat L } { M I 6 -1 roll put N I 5 -1 roll put O I 4 -1 roll put P I 3 -1 roll put /I I 1 add def D not { /E exch def /D true def } { pop } ifelse } ifelse } for L } for
10{pop}repeat } bind def /bps 8 string def /bpm [8 0 0 8 0 0] def /bpp { bps } def /overlaybackpat { userdict /BeachHead get begin gsave setrgbcolor bps copy pop dup 0 get 8 div floor cvi 8 mul 1 index 2 get 8 div floor cvi 8 mul 2 index 1 get 8 div floor cvi 8 mul 8 4 index 3 get 8 div floor cvi 8 mul { 2 index 8 3 index { 1 index gsave translate 8 8 scale 8 8 false bpm /bpp load imagemask grestore } for pop } for pop pop pop grestore end } bind def /U { userdict /BeachHead get begin /V exch def /W exch def countdictstack save V 2 add 2 roll count V sub /X exch def /W load end { exec } stopped userdict /BeachHead get begin
/Y exch def count X sub { pop } repeat Y 3 1 roll restore countdictstack exch sub { end } repeat end } bind def /Zstr ( ) def /aa { moveto { ba setfont Zstr end gsave 0 setgray stringwidth grestore userdict /BeachHead get begin rmoveto /ca load null ne { /da da 1 add def da ea length 1 sub le { fa ea da get ca } if } { ax ay rmoveto fa ga eq { cx cy rmoveto } if } ifelse } stopped
currentdict userdict /BeachHead get ne { userdict /BeachHead get begin }if } bind def
/filltextpath2 { userdict /BeachHead get begin /p exch def /s exch def /ea exch def /fillProc exch def /ia exch def currentpoint
ia i and { ea s p krnshow } if moveto i /i false def currentpoint /m 1 string def /ya 0 def /t 0 def /za 0 def ea
{ m 0 3 -1 roll put newpath t za moveto m true charpath fillProc t s ya get add /t exch def ya 1 add /ya exch def
za s ya get add /za exch def ya 1 add /ya exch def } forall moveto /i exch def ia { n i /n false def /i false def ea s p krnshow /i exch def /n exch def } if end } bind def /filltextpath { userdict /BeachHead get begin /ea exch def
dup type dup /integertype eq exch /realtype eq or { /ay exch def /ax exch def /ga exch def /cy exch def /cx exch def /ca null def } { /wa 0 def /ca exch def } ifelse /ha exch def /ia exch def ia { i get { gsave 0 setgray /ca load null ne { /ca load ea kshow /wa 0 def } { cx cy ga ax ay ea awidthshow } ifelse grestore } if } if gsave currentfont ia { begin r FontMatrix makefont l FontMatrix makefont end } { null exch } ifelse /ja exch def /ka exch def /ba currentfont def _doTexturePat { systemdict /makepattern known } { false }ifelse { matrix currentmatrix _strtxtmatrix null ne { _strtxtmatrix setmatrix } if 1 -1 scale txTrnsX txTrnsY translate settexturepat setmatrix /da 0 def ea { /fa exch def Zstr 0 fa put ja setfont currentpoint Zstr show aa {exit} if } forall } { 10 setlinewidth /da 0 def currentpoint newpath 0 dup dup dup moveto lineto closepath moveto ea { /fa exch def Zstr 0 fa put currentpoint ja setfont count 1 add dup 1 roll Zstr true { charpath } stopped count count -1 roll sub { pop } repeat currentpoint {ha} 0 U pop newpath 0 dup dup dup moveto lineto closepath moveto
aa {exit} if } forall } ifelse grestore ka null ne { /wa 0 def gsave 0 setgray /da 0 def ea { /fa exch def Zstr 0 fa put ka setfont currentpoint Zstr show aa {exit} if } forall grestore } if /_doTexturePat false def /_strtxtmatrix null def end } bind def /reversecolor { 1 currentrgbcolor 1 index eq 3 1 roll eq and { currentgray sub } if setgray } bind def
/ftpkproc { pop Zstr 0 3 -1 roll put Zstr stringwidth neg exch neg exch rmoveto userdict /BeachHead get begin _cwidths wa get /wa wa 1 add def _cwidths wa get /wa wa 1 add def rmoveto end } bind def /xa { userdict /BeachHead get begin pop pop Zstr 0 3 -1 roll put currentpoint Zstr bhshow moveto _cwidths pa get /pa pa 1 add def _cwidths pa get /pa pa 1 add def rmoveto end } bind def /na[256{0}repeat]def mark 161 176 173 185 176 165 177 177 178 163 179 179 181 109 182 182 183 229 184 213 185 112 186 242 189 87 195 214 197 187 198 68 214 184 215 224 240 240
counttomark 2 div cvi {na 3 1 roll put} repeat pop /krnshow
{ dup type dup /integertype ne exch /realtype ne and {12} if /Symbol findfont exch scalefont /oa exch def /ua currentfont def /pa 0 def systemdict /cshow known currentfont /FontType get 0 eq and { /_cwidths exch def /xa load cshow } { exch userdict /BeachHead get begin h { /h false def gsave dup stringwidth pop (_) stringwidth pop div 1 scale currentpoint (_) show moveto grestore } if end { dup na exch get
dup 0 eq isWinPS or { pop Zstr 0 3 -1 roll put currentpoint Zstr userdict begin bhshow end moveto } { oa setfont Zstr 0 3 -1 roll put currentpoint Zstr bhshow moveto ua setfont pop } ifelse dup pa get /pa pa 1 add def 1 index pa get /pa pa 1 add def rmoveto } forall pop } ifelse } bind def /setcmykcolor where { pop /bhsetcmykcolor/setcmykcolor load def } {
/bhsetcmykcolor { 4 1 roll 3{ 3 index add neg 1 add dup 0 lt {pop 0}if 3 1 roll }repeat setrgbcolor pop }bind def }ifelse
end
%EndProcSet
%%EndProlog
%%BeginSetup
userdict/BeachHead get begin
%%EndSetup
%%Page One 1
newpath
0 0 moveto
0 240 lineto
230 240 lineto
230 0 lineto closepath clip
gsave
-1780 260 translate
1 -1 scale
newpath 1840.5 75.5 moveto
1885.5 110.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 1820.5 75.5 moveto
1840.5 175.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 1800.5 75.5 moveto
1800.5 210.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 1850 90 moveto 1870 90 lineto 1870 100 lineto 1850 100 lineto 1850 90 lineto closepath
1 setgray
eofill
newpath 1820 110 moveto 1840 110 lineto 1840 120 lineto 1820 120 lineto 1820 110 lineto closepath
1 setgray
eofill
newpath 1790 140 moveto 1830 140 lineto 1830 150 lineto 1790 150 lineto 1790 140 lineto closepath
1 setgray
eofill
/Helvetica findbeachheadfont 9 scalefont setfont
gsave
1852 97 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Day)
[6 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1821 117 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Hour)
[6 0 5 0 5 0 3 0 ]
9 krnshow
grestore
gsave
1785 147 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Location)
[5 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1805 222 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Location)
[5 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1805 237 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Compound)
[6 0 5 0 7 0 5 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1805 252 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Describes where measurements taken)
[6 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 5 0 2 0 6 0 5 0 5 0 3 0 5 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 5 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
newpath 1795.5 210.5 moveto 1964.5 210.5 lineto 1964.5 259.5 lineto 1795.5 259.5 lineto 1795.5 210.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
1890 102 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Date)
[6 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
1890 117 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1890 132 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Day that measurement taken)
[6 0 5 0 5 0 2 0 3 0 5 0 5 0 3 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
newpath 1885.5 90.5 moveto 2009.5 90.5 lineto 2009.5 139.5 lineto 1885.5 139.5 lineto 1885.5 90.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
1845 192 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Hour of day measurement taken)
[6 0 5 0 5 0 3 0 2 0 5 0 3 0 2 0 5 0 5 0 5 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1845 162 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Int)
[3 0 5 0 3 0 ]
9 krnshow
grestore
gsave
1845 177 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
newpath 1840.5 150.5 moveto 1974.5 150.5 lineto 1974.5 199.5 lineto 1840.5 199.5 lineto 1840.5 150.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
1790 37 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Inputs)
[3 0 5 0 5 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
1790 52 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Compound)
[6 0 5 0 7 0 5 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1790 67 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(values going in to experiment)
[5 0 5 0 2 0 5 0 5 0 5 0 2 0 5 0 5 0 2 0 5 0 5 0 2 0 2 0 5 0 2 0 3 0 5 0 2 0 5 0 5 0 5 0 5 0 3 0 2 0 7 0 5 0 5 0 3 0 ]
9 krnshow
grestore
newpath 1785.5 25.5 moveto 1909.5 25.5 lineto 1909.5 74.5 lineto 1785.5 74.5 lineto 1785.5 25.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
newpath 1855.5 50.5 moveto
1920.5 30.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 1855.5 50.5 moveto
1920.5 55.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 1855.5 50.5 moveto
1920.5 75.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
/Helvetica findbeachheadfont 10 scalefont setfont
gsave
1842 53 translate 1 -1 scale 0 0 moveto
0 setgray
(C)
[7 0 ]
10 krnshow
grestore
newpath 1835.5 51 moveto 1844 51 8.5 180 270 arc
1846 42.5 lineto 1846 51 8.5 270 0 arc
1854.5 48 lineto 1846 48 8.5 0 90 arc
1844 56.5 lineto 1844 48 8.5 90 180 arc
1835.5 51 lineto closepath
0 setgray
1 setlinewidth stroke
gsave
1927 33 translate 1 -1 scale 0 0 moveto
0 setgray
(P)
[7 0 ]
10 krnshow
grestore
newpath matrix currentmatrix
1.357 1 scale
1422.105 29.5 7 0 360 arc
setmatrix
closepath
0 setgray
1 setlinewidth stroke
gsave
1927 58 translate 1 -1 scale 0 0 moveto
0 setgray
(P)
[7 0 ]
10 krnshow
grestore
newpath matrix currentmatrix
1.357 1 scale
1422.105 54.5 7 0 360 arc
setmatrix
closepath
0 setgray
1 setlinewidth stroke
gsave
1927 83 translate 1 -1 scale 0 0 moveto
0 setgray
(C)
[7 0 ]
10 krnshow
grestore
newpath 1920.5 81 moveto 1929 81 8.5 180 270 arc
1931 72.5 lineto 1931 81 8.5 270 0 arc
1939.5 78 lineto 1931 78 8.5 0 90 arc
1929 86.5 lineto 1929 78 8.5 90 180 arc
1920.5 81 lineto closepath
0 setgray
1 setlinewidth stroke
grestore
showpage
%%Trailer
end
pse
count op_count sub {pop} repeat
countdictstack dict_count sub {end} repeat
b4_Inc_state restore
gR
gS 0 42 552 650 rC
162 342 :M
f0_10 sf
-.011(Figure 4.17. A simpler version of the schema in Figure 4.16)A
f2_10 sf
(.)S
170 381 230 235 rC
-1 -1 -31999 -32000 1 1 -32000 -32001 @b
-32000 -32001 :M
/b4_Inc_state save def
/dict_count countdictstack def
/op_count count 1 sub def
userdict begin
/showpage {} def
0 setgray 0 setlinecap
1 setlinewidth 0 setlinejoin
10 setmiterlimit [] 0 setdash newpath
/languagelevel where
{pop languagelevel
1 ne
{false setstrokeadjust false setoverprint
} if
} if
psb
170 616 translate
1 1 neg scale
0 neg 0 neg translate
%!PS-Adobe-2.0 EPSF-1.2
%%Creator: SuperPaint
%%Title: SampleLayout2.eps
%%CreationDate: 8/19/95
%%BoundingBox: 0 0 230 235
%%Pages 1
%%DocumentFonts: Symbol
%%+Helvetica
%%DocumentNeededFonts: Symbol
%%+Helvetica
%%DocumentProcSets: BeachHead 2 1
%%DocumentSuppliedProcSets: BeachHead 2 1
%%EndComments
%BeginProcSet: BeachHead 2 5
% BeachHead - v2.5 Copyright 1991-1993 Aldus Corporation.
userdict /BeachHead known userdict begin /BeachHead 140 dict def BeachHead end begin /ta exch def /BeachHead_version 2 def /isWinPS false def /c 75 string def /sa 75 string def /f false def /g false def /h false def /i false def
/n true def /k 0.015 def /oldmatrix 6 array def
/newmatrix 6 array def /_doTexturePat false def /_strtxtmatrix null def /nulld { counttomark {null def} repeat pop } bind def mark /l /m /o /q /r /u /v /w /_cwidths /wa /x /y /z /A /B /D /E/F /G /H /I /J /K /M /N /O /P /Q /R /S /T /V /W /X /Y /ba /ca /da /ea /fa /ga
/ha /ia /ja /ka ta not{/la /ma}if /_strtxtmatrix nulld /ra 256 array def
ra dup dup 0 /Times-Roman findfont /Encoding get 0 128 getinterval putinterval
39 /quotesingle put 96 /grave put /Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave
/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute/ograve
/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis/dagger/degree/cent
/sterling/section/bullet/paragraph/germandbls/registered/copyright/trademark/acute
/dieresis/notequal/AE/Oslash/infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff
/summation/product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash/questiondown
/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft/guillemotright
/ellipsis/blank/Agrave/Atilde/Otilde/OE/oe/endash/emdash/quotedblleft/quotedblright
/quoteleft/quoteright/divide/lozenge/ydieresis/Ydieresis/fraction/currency/guilsinglleft
/guilsinglright/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave
/Oacute/Ocircumflex/apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde
/macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron
ra 128 128 getinterval astore pop /winvec 256 array def ra winvec copy pop winvec 15{dup}repeat 161 /ring put 178 /Scaron put 182 /eth put 184 /Thorn put 185 /thorn put 195 /scaron put 198 /Eth put 222 /hyphen put 223 /twosuperior put 225 /threesuperior put 240 /onequarter put 249 /onehalf put 250 /periodcentered put 252 /cedilla put 253 /multiply put 254 /Yacute put version cvr 51 ge { winvec 245 /onesuperior put winvec 251 /threequarters put winvec 255 /yacute put } if /d { 0 1 74 { c exch 0 put } for dup c cvs pop c } bind def /qa { 0 1 74 { sa exch 0 put } for dup sa cvs pop sa 74 1 put } bind def /e { d 74 2 put } bind def
/addoblique {userdict /BeachHead get begin /g true def end} bind def
/addheavy {userdict /BeachHead get begin /f true def end} bind def
/adduline {userdict /BeachHead get begin /h true def end} bind def
/findshadowfont { findoutlinefont userdict /BeachHead get begin /i true def /n true def end } bind def
/findoutlinefont { findbeachheadfont userdict /BeachHead get begin j /n true def end } bind def
/findbeachheadfont { userdict /BeachHead get begin /f false def /g false def /h false def /i false def dup findfont dup /FontType get 0 ne { /Encoding get dup 161 get exch 162 get /cent eq exch /exclamdown eq and { userdict /BeachHead get begin qa FontDirectory sa known { pop sa findfont } { findfont dup length 1 add dict /o exch def { 1 index
/FID ne 2 index /UniqueID ne and { o 3 1 roll put } { pop pop } ifelse
} forall /FontName sa dup length string copy def
o /Encoding isWinPS {winvec}{ra} ifelse put sa o definefont } ifelse end }{ findfont } ifelse }{ exch pop } ifelse end } bind def
/j { userdict /BeachHead get begin dup /FontName get e FontDirectory c known { pop pop c findfont } { exch dup /FontType get 0 eq { dup maxlength 2 add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse }forall currentdict end dup dup /FDepVector get [ exch {j} forall ] /FDepVector exch put exch e pop c exch definefont } { 12 dict begin dup /l exch def /FontType 3 def /FontMatrix [1 0 0 1 0 0] def /FontBBox [0 0 1 1] def /Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for dup exch maxlength 2 add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse }forall /PaintType 2 def /StrokeWidth 1 0 FontMatrix dtransform dup mul exch dup mul add sqrt .012 exch div def currentdict end /_dummy exch definefont /r exch def /m 1 string def /FontType 3 def /BuildChar { exch begin m 0 3 -1 roll put r setfont m stringwidth setcharwidth l setfont i { .05 -.05 moveto m show } if n { reversecolor 0 0 moveto m show reversecolor } if r setfont 0 0 moveto m show end } bind def currentdict end exch e pop c exch definefont } ifelse } ifelse end } bind def /EPSBegin { save userdict /BeachHead get begin /la exch def count /ma exch def end userdict /showpage {} put 0 setgray 0 setlinecap 1 setlinewidth
0 setlinejoin 10 setmiterlimit [] 0 setdash newpath } bind def /EPSEnd { userdict /BeachHead get begin count ma sub dup 0 gt {{pop}repeat} {pop}ifelse la end restore } bind def /cimage { userdict /BeachHead get begin { {readstring} } { {readhexstring} } ifelse /u exch def /colorimage where { pop 4 index dup string /v exch def dup string /w exch def dup string /x exch def dup string /y exch def string /z exch def { currentfile v u pop } { currentfile w u pop } { currentfile x u pop } { currentfile y u pop currentfile z u pop pop } 5 -1 roll { true 4 A } { true 4 /colorimage load exec } ifelse } { 4 index dup string /z exch def 4 mul string /B exch def { currentfile B u pop pop currentfile z u pop } exch { transimage } { /image load exec } ifelse } ifelse end } bind def /bhshow { userdict /BeachHead get begin h { gsave dup stringwidth pop (_) stringwidth pop div 1 scale currentpoint (_) show moveto grestore } if gsave g { [1 0 .17 1 0 0] concat } if f { /_x1 12 k mul def /_y1 12 k mul def currentpoint 3 copy _y1 add exch _x1 add exch moveto show 3 copy _y1
add exch _x1 sub exch moveto show 3 copy _y1 sub exch _x1 add exch moveto show 3 copy _y1 sub exch _x1 sub exch moveto show moveto } if show grestore end } bind def /C { D { gsave E F 3 index idtransform translate G 1 4 index 4 index {H} /image load exec grestore /I 0 def /G 0 def /D false def } if } bind def /transimage { userdict
/BeachHead get begin 2 index 8 ne { /image load exec } { 4 index cvi string /H exch def /J 0 string def /K 0 def /D false def /I 0 def /G 0 def 0 1 5 index 1 sub { /F exch def 0 1 6 index 1 sub { K J length ge { 1 index dup type /stringtype ne { exec } if /J exch def /K 0 def } if J K get /K K 1 add def dup 255 eq { pop pop C } { H I 3 -1 roll put /I I 1 add def /G G 1 add def D not { /E exch def /G 1 def /D true def } { pop } ifelse } ifelse } for C } for 5{pop}repeat } ifelse end } bind def /L { D { gsave E F 8 index idtransform translate I 1 8 9 index {M} {N} {O} {P} true 4 /colorimage load exec grestore /I 0 def /D false def } if } bind def /A { 9 index cvi dup string /M exch def dup string /N exch def dup string /O exch def string /P exch def /Q 0 string def /K 0 def /D false def /I 0 def /G 0 def 0 1 10 index 1 sub { /F exch def 0 1 11 index 1 sub { K Q length ge { 6 index exec /R exch def 5 index exec /S exch def 4 index exec /T exch def 3 index exec /Q exch def /K 0 def } if R K get S K get T K get Q K get
/K K 1 add def dup 0 eq 2 index 0 eq and 3 index 0 eq and 4 index 0 eq and { 5{pop}repeat L } { M I 6 -1 roll put N I 5 -1 roll put O I 4 -1 roll put P I 3 -1 roll put /I I 1 add def D not { /E exch def /D true def } { pop } ifelse } ifelse } for L } for
10{pop}repeat } bind def /bps 8 string def /bpm [8 0 0 8 0 0] def /bpp { bps } def /overlaybackpat { userdict /BeachHead get begin gsave setrgbcolor bps copy pop dup 0 get 8 div floor cvi 8 mul 1 index 2 get 8 div floor cvi 8 mul 2 index 1 get 8 div floor cvi 8 mul 8 4 index 3 get 8 div floor cvi 8 mul { 2 index 8 3 index { 1 index gsave translate 8 8 scale 8 8 false bpm /bpp load imagemask grestore } for pop } for pop pop pop grestore end } bind def /U { userdict /BeachHead get begin /V exch def /W exch def countdictstack save V 2 add 2 roll count V sub /X exch def /W load end { exec } stopped userdict /BeachHead get begin
/Y exch def count X sub { pop } repeat Y 3 1 roll restore countdictstack exch sub { end } repeat end } bind def /Zstr ( ) def /aa { moveto { ba setfont Zstr end gsave 0 setgray stringwidth grestore userdict /BeachHead get begin rmoveto /ca load null ne { /da da 1 add def da ea length 1 sub le { fa ea da get ca } if } { ax ay rmoveto fa ga eq { cx cy rmoveto } if } ifelse } stopped
currentdict userdict /BeachHead get ne { userdict /BeachHead get begin }if } bind def
/filltextpath2 { userdict /BeachHead get begin /p exch def /s exch def /ea exch def /fillProc exch def /ia exch def currentpoint
ia i and { ea s p krnshow } if moveto i /i false def currentpoint /m 1 string def /ya 0 def /t 0 def /za 0 def ea
{ m 0 3 -1 roll put newpath t za moveto m true charpath fillProc t s ya get add /t exch def ya 1 add /ya exch def
za s ya get add /za exch def ya 1 add /ya exch def } forall moveto /i exch def ia { n i /n false def /i false def ea s p krnshow /i exch def /n exch def } if end } bind def /filltextpath { userdict /BeachHead get begin /ea exch def
dup type dup /integertype eq exch /realtype eq or { /ay exch def /ax exch def /ga exch def /cy exch def /cx exch def /ca null def } { /wa 0 def /ca exch def } ifelse /ha exch def /ia exch def ia { i get { gsave 0 setgray /ca load null ne { /ca load ea kshow /wa 0 def } { cx cy ga ax ay ea awidthshow } ifelse grestore } if } if gsave currentfont ia { begin r FontMatrix makefont l FontMatrix makefont end } { null exch } ifelse /ja exch def /ka exch def /ba currentfont def _doTexturePat { systemdict /makepattern known } { false }ifelse { matrix currentmatrix _strtxtmatrix null ne { _strtxtmatrix setmatrix } if 1 -1 scale txTrnsX txTrnsY translate settexturepat setmatrix /da 0 def ea { /fa exch def Zstr 0 fa put ja setfont currentpoint Zstr show aa {exit} if } forall } { 10 setlinewidth /da 0 def currentpoint newpath 0 dup dup dup moveto lineto closepath moveto ea { /fa exch def Zstr 0 fa put currentpoint ja setfont count 1 add dup 1 roll Zstr true { charpath } stopped count count -1 roll sub { pop } repeat currentpoint {ha} 0 U pop newpath 0 dup dup dup moveto lineto closepath moveto
aa {exit} if } forall } ifelse grestore ka null ne { /wa 0 def gsave 0 setgray /da 0 def ea { /fa exch def Zstr 0 fa put ka setfont currentpoint Zstr show aa {exit} if } forall grestore } if /_doTexturePat false def /_strtxtmatrix null def end } bind def /reversecolor { 1 currentrgbcolor 1 index eq 3 1 roll eq and { currentgray sub } if setgray } bind def
/ftpkproc { pop Zstr 0 3 -1 roll put Zstr stringwidth neg exch neg exch rmoveto userdict /BeachHead get begin _cwidths wa get /wa wa 1 add def _cwidths wa get /wa wa 1 add def rmoveto end } bind def /xa { userdict /BeachHead get begin pop pop Zstr 0 3 -1 roll put currentpoint Zstr bhshow moveto _cwidths pa get /pa pa 1 add def _cwidths pa get /pa pa 1 add def rmoveto end } bind def /na[256{0}repeat]def mark 161 176 173 185 176 165 177 177 178 163 179 179 181 109 182 182 183 229 184 213 185 112 186 242 189 87 195 214 197 187 198 68 214 184 215 224 240 240
counttomark 2 div cvi {na 3 1 roll put} repeat pop /krnshow
{ dup type dup /integertype ne exch /realtype ne and {12} if /Symbol findfont exch scalefont /oa exch def /ua currentfont def /pa 0 def systemdict /cshow known currentfont /FontType get 0 eq and { /_cwidths exch def /xa load cshow } { exch userdict /BeachHead get begin h { /h false def gsave dup stringwidth pop (_) stringwidth pop div 1 scale currentpoint (_) show moveto grestore } if end { dup na exch get
dup 0 eq isWinPS or { pop Zstr 0 3 -1 roll put currentpoint Zstr userdict begin bhshow end moveto } { oa setfont Zstr 0 3 -1 roll put currentpoint Zstr bhshow moveto ua setfont pop } ifelse dup pa get /pa pa 1 add def 1 index pa get /pa pa 1 add def rmoveto } forall pop } ifelse } bind def /setcmykcolor where { pop /bhsetcmykcolor/setcmykcolor load def } {
/bhsetcmykcolor { 4 1 roll 3{ 3 index add neg 1 add dup 0 lt {pop 0}if 3 1 roll }repeat setrgbcolor pop }bind def }ifelse
end
%EndProcSet
%%EndProlog
%%BeginSetup
userdict/BeachHead get begin
%%EndSetup
%%Page One 1
newpath
0 0 moveto
0 235 lineto
230 235 lineto
230 0 lineto closepath clip
gsave
-1780 535 translate
1 -1 scale
/Helvetica findbeachheadfont 9 scalefont setfont
gsave
1870 317 translate 1 -1 scale 0 0 moveto
0 setgray
(Int)
[3 0 5 0 3 0 ]
9 krnshow
grestore
gsave
1870 332 translate 1 -1 scale 0 0 moveto
0 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1870 347 translate 1 -1 scale 0 0 moveto
0 setgray
(Hour of day measurement taken)
[6 0 5 0 5 0 3 0 2 0 5 0 3 0 2 0 5 0 5 0 5 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
newpath 1865.5 305.5 moveto 1999.5 305.5 lineto 1999.5 354.5 lineto 1865.5 354.5 lineto 1865.5 305.5 lineto closepath
0 setgray
1 setlinewidth stroke
newpath 1840.5 350.5 moveto
1885.5 385.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 1820.5 350.5 moveto
1840.5 450.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 1800.5 350.5 moveto
1800.5 485.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 1850 365 moveto 1870 365 lineto 1870 375 lineto 1850 375 lineto 1850 365 lineto closepath
1 setgray
eofill
newpath 1820 385 moveto 1840 385 lineto 1840 395 lineto 1820 395 lineto 1820 385 lineto closepath
1 setgray
eofill
newpath 1790 415 moveto 1830 415 lineto 1830 425 lineto 1790 425 lineto 1790 415 lineto closepath
1 setgray
eofill
gsave
1852 372 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Day)
[6 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1821 392 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Hour)
[6 0 5 0 5 0 3 0 ]
9 krnshow
grestore
gsave
1785 422 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Location)
[5 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1805 497 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Location)
[5 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1805 512 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Compound)
[6 0 5 0 7 0 5 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1805 527 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Describes where measurements taken)
[6 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 5 0 2 0 6 0 5 0 5 0 3 0 5 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 5 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
newpath 1795.5 485.5 moveto 1964.5 485.5 lineto 1964.5 534.5 lineto 1795.5 534.5 lineto 1795.5 485.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
1890 377 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Date)
[6 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
1890 392 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1890 407 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Day that measurement taken)
[6 0 5 0 5 0 2 0 3 0 5 0 5 0 3 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
newpath 1885.5 365.5 moveto 2009.5 365.5 lineto 2009.5 414.5 lineto 1885.5 414.5 lineto 1885.5 365.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
1845 467 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Hour of day measurement taken)
[6 0 5 0 5 0 3 0 2 0 5 0 3 0 2 0 5 0 5 0 5 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1845 437 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Int)
[3 0 5 0 3 0 ]
9 krnshow
grestore
gsave
1845 452 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
newpath 1840.5 425.5 moveto 1974.5 425.5 lineto 1974.5 474.5 lineto 1840.5 474.5 lineto 1840.5 425.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
1790 312 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Inputs)
[3 0 5 0 5 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
1790 327 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Compound)
[6 0 5 0 7 0 5 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
1790 342 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(values going in to experiment)
[5 0 5 0 2 0 5 0 5 0 5 0 2 0 5 0 5 0 2 0 5 0 5 0 2 0 2 0 5 0 2 0 3 0 5 0 2 0 5 0 5 0 5 0 5 0 3 0 2 0 7 0 5 0 5 0 3 0 ]
9 krnshow
grestore
newpath 1785.5 300.5 moveto 1909.5 300.5 lineto 1909.5 349.5 lineto 1785.5 349.5 lineto 1785.5 300.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
newpath 1855.5 325.5 moveto
1905.5 365.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 1855.5 325.5 moveto
1865.5 325.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 1855.5 325.5 moveto
1935.5 365.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
/Helvetica findbeachheadfont 10 scalefont setfont
gsave
1842 328 translate 1 -1 scale 0 0 moveto
0 setgray
(C)
[7 0 ]
10 krnshow
grestore
newpath 1835.5 326 moveto 1844 326 8.5 180 270 arc
1846 317.5 lineto 1846 326 8.5 270 0 arc
1854.5 323 lineto 1846 323 8.5 0 90 arc
1844 331.5 lineto 1844 323 8.5 90 180 arc
1835.5 326 lineto closepath
0 setgray
1 setlinewidth stroke
gsave
1937 373 translate 1 -1 scale 0 0 moveto
0 setgray
(P)
[7 0 ]
10 krnshow
grestore
newpath matrix currentmatrix
1.357 1 scale
1429.474 369.5 7 0 360 arc
setmatrix
closepath
0 setgray
1 setlinewidth stroke
gsave
1912 373 translate 1 -1 scale 0 0 moveto
0 setgray
(C)
[7 0 ]
10 krnshow
grestore
newpath 1905.5 371 moveto 1914 371 8.5 180 270 arc
1916 362.5 lineto 1916 371 8.5 270 0 arc
1924.5 368 lineto 1916 368 8.5 0 90 arc
1914 376.5 lineto 1914 368 8.5 90 180 arc
1905.5 371 lineto closepath
0 setgray
1 setlinewidth stroke
grestore
showpage
%%Trailer
end
pse
count op_count sub {pop} repeat
countdictstack dict_count sub {end} repeat
b4_Inc_state restore
gR
gS 0 42 552 650 rC
172 640 :M
f0_10 sf
-.006(Figure 4.18. The same schema with Hour as a )A
f2_10 sf
-.007(big-node.)A
endp
%%Page: 31 31
%%BeginPageSetup
initializepage
(; page: 31 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(54)S
gR
gS 170 47 230 235 rC
-1 -1 -31999 -32000 1 1 -32000 -32001 @b
-32000 -32001 :M
/b4_Inc_state save def
/dict_count countdictstack def
/op_count count 1 sub def
userdict begin
/showpage {} def
0 setgray 0 setlinecap
1 setlinewidth 0 setlinejoin
10 setmiterlimit [] 0 setdash newpath
/languagelevel where
{pop languagelevel
1 ne
{false setstrokeadjust false setoverprint
} if
} if
psb
170 282 translate
1 1 neg scale
0 neg 0 neg translate
%!PS-Adobe-2.0 EPSF-1.2
%%Creator: SuperPaint
%%Title: SampleLayout3.eps
%%CreationDate: 8/19/95
%%BoundingBox: 0 0 230 235
%%Pages 1
%%DocumentFonts: Symbol
%%+Helvetica
%%DocumentNeededFonts: Symbol
%%+Helvetica
%%DocumentProcSets: BeachHead 2 1
%%DocumentSuppliedProcSets: BeachHead 2 1
%%EndComments
%BeginProcSet: BeachHead 2 5
% BeachHead - v2.5 Copyright 1991-1993 Aldus Corporation.
userdict /BeachHead known userdict begin /BeachHead 140 dict def BeachHead end begin /ta exch def /BeachHead_version 2 def /isWinPS false def /c 75 string def /sa 75 string def /f false def /g false def /h false def /i false def
/n true def /k 0.015 def /oldmatrix 6 array def
/newmatrix 6 array def /_doTexturePat false def /_strtxtmatrix null def /nulld { counttomark {null def} repeat pop } bind def mark /l /m /o /q /r /u /v /w /_cwidths /wa /x /y /z /A /B /D /E/F /G /H /I /J /K /M /N /O /P /Q /R /S /T /V /W /X /Y /ba /ca /da /ea /fa /ga
/ha /ia /ja /ka ta not{/la /ma}if /_strtxtmatrix nulld /ra 256 array def
ra dup dup 0 /Times-Roman findfont /Encoding get 0 128 getinterval putinterval
39 /quotesingle put 96 /grave put /Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave
/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute/ograve
/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis/dagger/degree/cent
/sterling/section/bullet/paragraph/germandbls/registered/copyright/trademark/acute
/dieresis/notequal/AE/Oslash/infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff
/summation/product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash/questiondown
/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft/guillemotright
/ellipsis/blank/Agrave/Atilde/Otilde/OE/oe/endash/emdash/quotedblleft/quotedblright
/quoteleft/quoteright/divide/lozenge/ydieresis/Ydieresis/fraction/currency/guilsinglleft
/guilsinglright/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave
/Oacute/Ocircumflex/apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde
/macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron
ra 128 128 getinterval astore pop /winvec 256 array def ra winvec copy pop winvec 15{dup}repeat 161 /ring put 178 /Scaron put 182 /eth put 184 /Thorn put 185 /thorn put 195 /scaron put 198 /Eth put 222 /hyphen put 223 /twosuperior put 225 /threesuperior put 240 /onequarter put 249 /onehalf put 250 /periodcentered put 252 /cedilla put 253 /multiply put 254 /Yacute put version cvr 51 ge { winvec 245 /onesuperior put winvec 251 /threequarters put winvec 255 /yacute put } if /d { 0 1 74 { c exch 0 put } for dup c cvs pop c } bind def /qa { 0 1 74 { sa exch 0 put } for dup sa cvs pop sa 74 1 put } bind def /e { d 74 2 put } bind def
/addoblique {userdict /BeachHead get begin /g true def end} bind def
/addheavy {userdict /BeachHead get begin /f true def end} bind def
/adduline {userdict /BeachHead get begin /h true def end} bind def
/findshadowfont { findoutlinefont userdict /BeachHead get begin /i true def /n true def end } bind def
/findoutlinefont { findbeachheadfont userdict /BeachHead get begin j /n true def end } bind def
/findbeachheadfont { userdict /BeachHead get begin /f false def /g false def /h false def /i false def dup findfont dup /FontType get 0 ne { /Encoding get dup 161 get exch 162 get /cent eq exch /exclamdown eq and { userdict /BeachHead get begin qa FontDirectory sa known { pop sa findfont } { findfont dup length 1 add dict /o exch def { 1 index
/FID ne 2 index /UniqueID ne and { o 3 1 roll put } { pop pop } ifelse
} forall /FontName sa dup length string copy def
o /Encoding isWinPS {winvec}{ra} ifelse put sa o definefont } ifelse end }{ findfont } ifelse }{ exch pop } ifelse end } bind def
/j { userdict /BeachHead get begin dup /FontName get e FontDirectory c known { pop pop c findfont } { exch dup /FontType get 0 eq { dup maxlength 2 add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse }forall currentdict end dup dup /FDepVector get [ exch {j} forall ] /FDepVector exch put exch e pop c exch definefont } { 12 dict begin dup /l exch def /FontType 3 def /FontMatrix [1 0 0 1 0 0] def /FontBBox [0 0 1 1] def /Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for dup exch maxlength 2 add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse }forall /PaintType 2 def /StrokeWidth 1 0 FontMatrix dtransform dup mul exch dup mul add sqrt .012 exch div def currentdict end /_dummy exch definefont /r exch def /m 1 string def /FontType 3 def /BuildChar { exch begin m 0 3 -1 roll put r setfont m stringwidth setcharwidth l setfont i { .05 -.05 moveto m show } if n { reversecolor 0 0 moveto m show reversecolor } if r setfont 0 0 moveto m show end } bind def currentdict end exch e pop c exch definefont } ifelse } ifelse end } bind def /EPSBegin { save userdict /BeachHead get begin /la exch def count /ma exch def end userdict /showpage {} put 0 setgray 0 setlinecap 1 setlinewidth
0 setlinejoin 10 setmiterlimit [] 0 setdash newpath } bind def /EPSEnd { userdict /BeachHead get begin count ma sub dup 0 gt {{pop}repeat} {pop}ifelse la end restore } bind def /cimage { userdict /BeachHead get begin { {readstring} } { {readhexstring} } ifelse /u exch def /colorimage where { pop 4 index dup string /v exch def dup string /w exch def dup string /x exch def dup string /y exch def string /z exch def { currentfile v u pop } { currentfile w u pop } { currentfile x u pop } { currentfile y u pop currentfile z u pop pop } 5 -1 roll { true 4 A } { true 4 /colorimage load exec } ifelse } { 4 index dup string /z exch def 4 mul string /B exch def { currentfile B u pop pop currentfile z u pop } exch { transimage } { /image load exec } ifelse } ifelse end } bind def /bhshow { userdict /BeachHead get begin h { gsave dup stringwidth pop (_) stringwidth pop div 1 scale currentpoint (_) show moveto grestore } if gsave g { [1 0 .17 1 0 0] concat } if f { /_x1 12 k mul def /_y1 12 k mul def currentpoint 3 copy _y1 add exch _x1 add exch moveto show 3 copy _y1
add exch _x1 sub exch moveto show 3 copy _y1 sub exch _x1 add exch moveto show 3 copy _y1 sub exch _x1 sub exch moveto show moveto } if show grestore end } bind def /C { D { gsave E F 3 index idtransform translate G 1 4 index 4 index {H} /image load exec grestore /I 0 def /G 0 def /D false def } if } bind def /transimage { userdict
/BeachHead get begin 2 index 8 ne { /image load exec } { 4 index cvi string /H exch def /J 0 string def /K 0 def /D false def /I 0 def /G 0 def 0 1 5 index 1 sub { /F exch def 0 1 6 index 1 sub { K J length ge { 1 index dup type /stringtype ne { exec } if /J exch def /K 0 def } if J K get /K K 1 add def dup 255 eq { pop pop C } { H I 3 -1 roll put /I I 1 add def /G G 1 add def D not { /E exch def /G 1 def /D true def } { pop } ifelse } ifelse } for C } for 5{pop}repeat } ifelse end } bind def /L { D { gsave E F 8 index idtransform translate I 1 8 9 index {M} {N} {O} {P} true 4 /colorimage load exec grestore /I 0 def /D false def } if } bind def /A { 9 index cvi dup string /M exch def dup string /N exch def dup string /O exch def string /P exch def /Q 0 string def /K 0 def /D false def /I 0 def /G 0 def 0 1 10 index 1 sub { /F exch def 0 1 11 index 1 sub { K Q length ge { 6 index exec /R exch def 5 index exec /S exch def 4 index exec /T exch def 3 index exec /Q exch def /K 0 def } if R K get S K get T K get Q K get
/K K 1 add def dup 0 eq 2 index 0 eq and 3 index 0 eq and 4 index 0 eq and { 5{pop}repeat L } { M I 6 -1 roll put N I 5 -1 roll put O I 4 -1 roll put P I 3 -1 roll put /I I 1 add def D not { /E exch def /D true def } { pop } ifelse } ifelse } for L } for
10{pop}repeat } bind def /bps 8 string def /bpm [8 0 0 8 0 0] def /bpp { bps } def /overlaybackpat { userdict /BeachHead get begin gsave setrgbcolor bps copy pop dup 0 get 8 div floor cvi 8 mul 1 index 2 get 8 div floor cvi 8 mul 2 index 1 get 8 div floor cvi 8 mul 8 4 index 3 get 8 div floor cvi 8 mul { 2 index 8 3 index { 1 index gsave translate 8 8 scale 8 8 false bpm /bpp load imagemask grestore } for pop } for pop pop pop grestore end } bind def /U { userdict /BeachHead get begin /V exch def /W exch def countdictstack save V 2 add 2 roll count V sub /X exch def /W load end { exec } stopped userdict /BeachHead get begin
/Y exch def count X sub { pop } repeat Y 3 1 roll restore countdictstack exch sub { end } repeat end } bind def /Zstr ( ) def /aa { moveto { ba setfont Zstr end gsave 0 setgray stringwidth grestore userdict /BeachHead get begin rmoveto /ca load null ne { /da da 1 add def da ea length 1 sub le { fa ea da get ca } if } { ax ay rmoveto fa ga eq { cx cy rmoveto } if } ifelse } stopped
currentdict userdict /BeachHead get ne { userdict /BeachHead get begin }if } bind def
/filltextpath2 { userdict /BeachHead get begin /p exch def /s exch def /ea exch def /fillProc exch def /ia exch def currentpoint
ia i and { ea s p krnshow } if moveto i /i false def currentpoint /m 1 string def /ya 0 def /t 0 def /za 0 def ea
{ m 0 3 -1 roll put newpath t za moveto m true charpath fillProc t s ya get add /t exch def ya 1 add /ya exch def
za s ya get add /za exch def ya 1 add /ya exch def } forall moveto /i exch def ia { n i /n false def /i false def ea s p krnshow /i exch def /n exch def } if end } bind def /filltextpath { userdict /BeachHead get begin /ea exch def
dup type dup /integertype eq exch /realtype eq or { /ay exch def /ax exch def /ga exch def /cy exch def /cx exch def /ca null def } { /wa 0 def /ca exch def } ifelse /ha exch def /ia exch def ia { i get { gsave 0 setgray /ca load null ne { /ca load ea kshow /wa 0 def } { cx cy ga ax ay ea awidthshow } ifelse grestore } if } if gsave currentfont ia { begin r FontMatrix makefont l FontMatrix makefont end } { null exch } ifelse /ja exch def /ka exch def /ba currentfont def _doTexturePat { systemdict /makepattern known } { false }ifelse { matrix currentmatrix _strtxtmatrix null ne { _strtxtmatrix setmatrix } if 1 -1 scale txTrnsX txTrnsY translate settexturepat setmatrix /da 0 def ea { /fa exch def Zstr 0 fa put ja setfont currentpoint Zstr show aa {exit} if } forall } { 10 setlinewidth /da 0 def currentpoint newpath 0 dup dup dup moveto lineto closepath moveto ea { /fa exch def Zstr 0 fa put currentpoint ja setfont count 1 add dup 1 roll Zstr true { charpath } stopped count count -1 roll sub { pop } repeat currentpoint {ha} 0 U pop newpath 0 dup dup dup moveto lineto closepath moveto
aa {exit} if } forall } ifelse grestore ka null ne { /wa 0 def gsave 0 setgray /da 0 def ea { /fa exch def Zstr 0 fa put ka setfont currentpoint Zstr show aa {exit} if } forall grestore } if /_doTexturePat false def /_strtxtmatrix null def end } bind def /reversecolor { 1 currentrgbcolor 1 index eq 3 1 roll eq and { currentgray sub } if setgray } bind def
/ftpkproc { pop Zstr 0 3 -1 roll put Zstr stringwidth neg exch neg exch rmoveto userdict /BeachHead get begin _cwidths wa get /wa wa 1 add def _cwidths wa get /wa wa 1 add def rmoveto end } bind def /xa { userdict /BeachHead get begin pop pop Zstr 0 3 -1 roll put currentpoint Zstr bhshow moveto _cwidths pa get /pa pa 1 add def _cwidths pa get /pa pa 1 add def rmoveto end } bind def /na[256{0}repeat]def mark 161 176 173 185 176 165 177 177 178 163 179 179 181 109 182 182 183 229 184 213 185 112 186 242 189 87 195 214 197 187 198 68 214 184 215 224 240 240
counttomark 2 div cvi {na 3 1 roll put} repeat pop /krnshow
{ dup type dup /integertype ne exch /realtype ne and {12} if /Symbol findfont exch scalefont /oa exch def /ua currentfont def /pa 0 def systemdict /cshow known currentfont /FontType get 0 eq and { /_cwidths exch def /xa load cshow } { exch userdict /BeachHead get begin h { /h false def gsave dup stringwidth pop (_) stringwidth pop div 1 scale currentpoint (_) show moveto grestore } if end { dup na exch get
dup 0 eq isWinPS or { pop Zstr 0 3 -1 roll put currentpoint Zstr userdict begin bhshow end moveto } { oa setfont Zstr 0 3 -1 roll put currentpoint Zstr bhshow moveto ua setfont pop } ifelse dup pa get /pa pa 1 add def 1 index pa get /pa pa 1 add def rmoveto } forall pop } ifelse } bind def /setcmykcolor where { pop /bhsetcmykcolor/setcmykcolor load def } {
/bhsetcmykcolor { 4 1 roll 3{ 3 index add neg 1 add dup 0 lt {pop 0}if 3 1 roll }repeat setrgbcolor pop }bind def }ifelse
end
%EndProcSet
%%EndProlog
%%BeginSetup
userdict/BeachHead get begin
%%EndSetup
%%Page One 1
newpath
0 0 moveto
0 235 lineto
230 235 lineto
230 0 lineto closepath clip
gsave
-2055 255 translate
1 -1 scale
/Helvetica findbeachheadfont 9 scalefont setfont
gsave
2120 157 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Int)
[3 0 5 0 3 0 ]
9 krnshow
grestore
gsave
2120 172 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
newpath 2115.5 145.5 moveto 2249.5 145.5 lineto 2249.5 194.5 lineto 2115.5 194.5 lineto 2115.5 145.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
2065 32 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Inputs)
[3 0 5 0 5 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
2065 47 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Compound)
[6 0 5 0 7 0 5 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
2065 62 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(values going in to experiment)
[5 0 5 0 2 0 5 0 5 0 5 0 2 0 5 0 5 0 2 0 5 0 5 0 2 0 2 0 5 0 2 0 3 0 5 0 2 0 5 0 5 0 5 0 5 0 3 0 2 0 7 0 5 0 5 0 3 0 ]
9 krnshow
grestore
newpath 2060.5 20.5 moveto 2184.5 20.5 lineto 2184.5 69.5 lineto 2060.5 69.5 lineto 2060.5 20.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
2065 32 translate 1 -1 scale 0 0 moveto
0 setgray
(Inputs)
[3 0 5 0 5 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
2065 47 translate 1 -1 scale 0 0 moveto
0 setgray
(Compound)
[6 0 5 0 7 0 5 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
2065 62 translate 1 -1 scale 0 0 moveto
0 setgray
(values going in to experiment)
[5 0 5 0 2 0 5 0 5 0 5 0 2 0 5 0 5 0 2 0 5 0 5 0 2 0 2 0 5 0 2 0 3 0 5 0 2 0 5 0 5 0 5 0 5 0 3 0 2 0 7 0 5 0 5 0 3 0 ]
9 krnshow
grestore
newpath 2060.5 20.5 moveto 2184.5 20.5 lineto 2184.5 69.5 lineto 2060.5 69.5 lineto 2060.5 20.5 lineto closepath
0 setgray
1 setlinewidth stroke
gsave
2120 142 translate 1 -1 scale 0 0 moveto
0 setgray
(Int)
[3 0 5 0 3 0 ]
9 krnshow
grestore
gsave
2120 157 translate 1 -1 scale 0 0 moveto
0 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
2120 172 translate 1 -1 scale 0 0 moveto
0 setgray
(Hour of day measurement taken)
[6 0 5 0 5 0 3 0 2 0 5 0 3 0 2 0 5 0 5 0 5 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
newpath 2115.5 130.5 moveto 2249.5 130.5 lineto 2249.5 179.5 lineto 2115.5 179.5 lineto 2115.5 130.5 lineto closepath
0 setgray
1 setlinewidth stroke
newpath 2115.5 70.5 moveto
2160.5 105.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 2095.5 70.5 moveto
2115.5 170.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 2075.5 70.5 moveto
2075.5 205.5 lineto
0.50002 setgray
currentlinecap 2 setlinecap
0.25 setlinewidth stroke
setlinecap
newpath 2125 85 moveto 2145 85 lineto 2145 95 lineto 2125 95 lineto 2125 85 lineto closepath
1 setgray
eofill
newpath 2095 105 moveto 2115 105 lineto 2115 115 lineto 2095 115 lineto 2095 105 lineto closepath
1 setgray
eofill
newpath 2065 135 moveto 2105 135 lineto 2105 145 lineto 2065 145 lineto 2065 135 lineto closepath
1 setgray
eofill
gsave
2127 92 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Day)
[6 0 5 0 5 0 ]
9 krnshow
grestore
gsave
2096 112 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Hour)
[6 0 5 0 5 0 3 0 ]
9 krnshow
grestore
gsave
2060 142 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Location)
[5 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
2080 217 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Location)
[5 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
2080 232 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Compound)
[6 0 5 0 7 0 5 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
gsave
2080 247 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Describes where measurements taken)
[6 0 5 0 5 0 5 0 3 0 2 0 5 0 5 0 5 0 2 0 6 0 5 0 5 0 3 0 5 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 5 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
newpath 2070.5 205.5 moveto 2239.5 205.5 lineto 2239.5 254.5 lineto 2070.5 254.5 lineto 2070.5 205.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
2165 97 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Date)
[6 0 5 0 3 0 5 0 ]
9 krnshow
grestore
gsave
2165 112 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Primitive)
[6 0 3 0 2 0 7 0 2 0 3 0 2 0 5 0 5 0 ]
9 krnshow
grestore
gsave
2165 127 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Day that measurement taken)
[6 0 5 0 5 0 2 0 3 0 5 0 5 0 3 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
newpath 2160.5 85.5 moveto 2284.5 85.5 lineto 2284.5 134.5 lineto 2160.5 134.5 lineto 2160.5 85.5 lineto closepath
0.50002 setgray
0.25 setlinewidth stroke
gsave
2120 187 translate 1 -1 scale 0 0 moveto
0.50002 setgray
(Hour of day measurement taken)
[6 0 5 0 5 0 3 0 2 0 5 0 3 0 2 0 5 0 5 0 5 0 2 0 7 0 5 0 5 0 5 0 5 0 3 0 5 0 7 0 5 0 5 0 3 0 2 0 3 0 5 0 5 0 5 0 5 0 ]
9 krnshow
grestore
newpath 2145.5 70.5 moveto
2175.5 110.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 2135.5 70.5 moveto
2155.5 130.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
newpath 2160.5 70.5 moveto
2210.5 105.5 lineto
0 setgray
currentlinecap 2 setlinecap
1 setlinewidth stroke
setlinecap
/Helvetica findbeachheadfont 10 scalefont setfont
gsave
2217 113 translate 1 -1 scale 0 0 moveto
0 setgray
(P)
[7 0 ]
10 krnshow
grestore
newpath matrix currentmatrix
1.357 1 scale
1635.79 109.5 7 0 360 arc
setmatrix
closepath
0 setgray
1 setlinewidth stroke
gsave
2182 118 translate 1 -1 scale 0 0 moveto
0 setgray
(C)
[7 0 ]
10 krnshow
grestore
newpath 2175.5 116 moveto 2184 116 8.5 180 270 arc
2186 107.5 lineto 2186 116 8.5 270 0 arc
2194.5 113 lineto 2186 113 8.5 0 90 arc
2184 121.5 lineto 2184 113 8.5 90 180 arc
2175.5 116 lineto closepath
0 setgray
1 setlinewidth stroke
grestore
showpage
%%Trailer
end
pse
count op_count sub {pop} repeat
countdictstack dict_count sub {end} repeat
b4_Inc_state restore
gR
gS 0 47 552 658 rC
171 306 :M
f0_10 sf
-.005(Figure 4.19. The same schema with Inputs as a )A
f2_10 sf
(big-node.)S
78 321 :M
f0_10 sf
( )S
60 351 :M
f0_12 sf
-.008(4.7.3.2 Defining the safe location)A
78 381 :M
f0_10 sf
.055 .006(The example in Section 4.7.3.1 had two safe layouts, one for each representation of the )J
431 381 :M
f2_10 sf
.142(entity-class.)A
f0_10 sf
.291 .029( In the)J
60 396 :M
-.012(general case, there will be many safe layouts, and for all concepts that)A
340 396 :M
.59 .059( are not allowed to overlap, each of their)J
60 411 :M
.515 .052(various representations must be associated with a safe layout.)J
314 411 :M
1.274 .127( For example, if a concept had five different)J
60 426 :M
-.019(representations, the user might want)A
205 426 :M
.585 .058( five safe layouts between which the schema would move. These layouts)J
60 441 :M
.734 .073(are prioritized; in the above example the concept instances in their large-safe location took precedence over)J
60 456 :M
.432 .043(concept instances in their small-safe locations. The priority should be given in descending order from largest)J
60 471 :M
.596 .06(representation to smallest, because a smaller representation can always fit inside the safe location of a larger)J
60 486 :M
-.011(representation. Thus, the system maintains an ordered list of consistent layouts.)A
78 501 :M
.791 .079(Given the potentially large number of safe layouts, it would be infeasible to ask the user for every safe)J
60 516 :M
1.26 .126(location each time a new concept instance is added to the schema. In addition, our users)J
446 516 :M
2.032 .203( have found it)J
60 531 :M
-.008(unsatisfactory to be prevented from adding a new instance to an unsafe location \(i.e. where)A
424 531 :M
.585 .058( it currently overlaps)J
60 546 :M
.046 .005(the safe locations of other instances at that level\). As a result, we have decided to allow safe locations to be in a)J
60 561 :M
-.033(state called unspecified.)A
156 561 :M
.606 .061( All safe locations for a concept instance are unspecified until the instance is located)J
60 576 :M
.098 .01(such that)J
97 576 :M
1.287 .129( its current footprint does not overlap any safe locations for its level. When an instance has an)J
60 591 :M
-.006(unspecified safe location, the layout algorithm is reduced to pushing it using a plowing algorithm.)A
78 606 :M
-.015(The safe locations for a concept instance are defined as follows:)A
96 627 :M
f8_9 sf
-.405(- Initially, all of a concept instances safe locations are undefined.)A
96 637 :M
-.404(- When a concept instance is created, moved, stretched, or changed to a new)A
109 647 :M
-.404(representation, the system checks the safe layout associated with the new)A
109 657 :M
-.404(representation/location. If the new footprint of the concept instance fits in)A
109 667 :M
-.404(the safe layout for the representation, then the safe location for that)A
109 677 :M
-.404(representation is defined as the new footprint, otherwise the safe location)A
109 687 :M
-.414(remains what it was before.)A
endp
%%Page: 32 32
%%BeginPageSetup
initializepage
(; page: 32 of 32)setjob
%%EndPageSetup
gS 0 0 552 730 rC
0 0 552 27 rC
500 20 :M
f0_10 sf
(55)S
gR
gS 0 38 552 666 rC
78 50 :M
f0_10 sf
.228 .023(These rules ensure that no two concept instances have the same safe location in the same safe layout. The)J
60 65 :M
.029 .003(next subsection)J
123 65 :M
1.187 .119( describes the rules for managing overlap given safe locations in different layouts, and the)J
60 80 :M
-.019(possibility of unspecified safe locations.)A
60 110 :M
f0_12 sf
-.017(4.7.3.3 Managing layout after overlap or freed space)A
78 140 :M
f0_10 sf
-.003(Given the rules specified in the previous subsection, the system will maintain an ordered list of safe layouts,)A
60 155 :M
.777 .078(and each concept instance may have a safe location for each of its different representations in those layouts)J
60 170 :M
1.306 .131(\(though the location may be unspecified instead\). This section describes the rules for managing overlap)J
60 185 :M
.234 .023(between concept instances when a change to the schema results in overlap. When overlap occurs between two)J
60 200 :M
(concept instances:)S
96 226 :M
f8_9 sf
-.404(- If one concept instance is in a representation of a higher priority than the)A
109 236 :M
-.404(other, move the other to its safe location in the higher priority layout. If)A
109 246 :M
-.404(its location at that priority is unspecified, or if it is too big to fit in that)A
109 256 :M
-.405(location, push it using the plowing algorithm described above.)A
96 266 :M
-.404(- If the concept instances are in representations associated with the same safe)A
109 276 :M
-.404(layout, move one towards its safe locations in that layout. If one or both have)A
109 286 :M
-.405(unspecified safe locations, push one using a plowing algorithm.)A
60 300 :M
f0_10 sf
-.01(Whenever a concept instance changes to a smaller representation:)A
96 321 :M
f8_9 sf
-.404(- If it has a safe location for that representation, move toward that location)A
109 331 :M
-.405(until it gets there, or until it will overlap something, and stop.)A
60 345 :M
f0_10 sf
-.004(When space is freed up as a result of some change to the schema:)A
96 366 :M
f8_9 sf
-.404(- Move any neighbors \(those instances within some fixed distance of the freed)A
109 376 :M
-.404(space\) toward their lowest priority \(smallest\) safe locations until they either)A
109 386 :M
-.408(get there or will overlap something, and stop.)A
60 400 :M
f0_10 sf
.446 .045(Thus, whenever overlap occurs, concept instances are moved toward their location in a more spacious layout,)J
60 415 :M
-.007(and whenever space is freed, they are moved toward their locations in a more compact layout.)A
60 445 :M
f1_12 sf
-.017(4.7.4 Layout Summary)A
78 475 :M
f0_10 sf
-.008(This section has described two approaches to managing layout for schemas whose members)A
446 475 :M
.525 .052( change in size.)J
60 490 :M
.692 .069(If the sizes of different representations can be ordered, then the more advanced heuristic works very well in)J
60 505 :M
.234 .023(returning the schema to a prespecified layout after a number of changes. It also keeps the shape of the schema)J
60 520 :M
1.452 .145(similar between layouts. If no such ordering exists, then the advanced heuristic does not handle mixed)J
60 535 :M
-.012(representation schemas very well, and the simpler approach would be sufficient.)A
60 580 :M
f1_14 sf
-.01(4.8 Summary)A
78 610 :M
f0_10 sf
.441 .044(In this chapter, we have presented a formalism for visual metaphors and described how it may be used to)J
60 625 :M
1.755 .175(improve the visual presentation of data schemas. This formalism allows high level description of)J
492 625 :M
2.525 .253( the)J
60 640 :M
-.003(correspondence between data and visual models. This description allows simpler definition of metaphors, easier)A
60 655 :M
.815 .081(evaluation and comparison of metaphors, and combination of different metaphors. The formalism can help)J
60 670 :M
-.01(improve schema visualizations in the many roles they play. Currently,)A
343 670 :M
.613 .061( the formalism has been implemented as)J
60 685 :M
-.055(an editing tool)A
118 685 :M
.62 .062( for schemas of arbitrary data models, visual models, and metaphors. This tool is described in)J
60 700 :M
-.034(detail in Chapter 5.)A
endp
%%Trailer
end % md
%%EOF