digraph GVmap { label = "\n\ntimeseries data model" rankdir=TB node [ shape=tab style=filled ] subgraph cluster_packages { label="Model" rankdir=TB style=filled fillcolor="/set312/1" "spaceaxis" [ URL="#spaceaxis" label = "spaceaxis" fillcolor="/set312/2" ] ; "timeaxis" [ URL="#timeaxis" label = "timeaxis" fillcolor="/set312/3" ] ; "wavelengthaxis" [ URL="#wavelengthaxis" label = "wavelengthaxis" fillcolor="/set312/4" ] ; "dataset" [ URL="#dataset" label = "dataset" fillcolor="/set312/5" ] ; "data" [ URL="#data" label = "data" fillcolor="/set312/6" ] ; } node [ shape=record fontsize=8 style=filled] "timeseries:TimeSerie" [ URL="#TimeSerie" label = "{TimeSerie}" fillcolor="/set312/1" ] ; "timeseries:spaceaxis.RefFrame" [ URL="#spaceaxis.RefFrame" label = "{spaceaxis/RefFrame|+position : ivoa:string\l+frame : ivoa:string\l}" fillcolor="/set312/2" ] ; "timeseries:spaceaxis.RefPosition" [ URL="#spaceaxis.RefPosition" label = "{spaceaxis/RefPosition|+latitude : ivoa:real\l+longitude : ivoa:real\l}" fillcolor="/set312/2" ] ; "timeseries:timeaxis.RefFrame" [ URL="#timeaxis.RefFrame" label = "{timeaxis/RefFrame|+position : ivoa:string\l}" fillcolor="/set312/3" ] ; "timeseries:wavelengthaxis.RefBand" [ URL="#wavelengthaxis.RefBand" label = "{wavelengthaxis/RefBand|+filter : ivoa:string\l+wavelength : ivoa:real\l}" fillcolor="/set312/4" ] ; "timeseries:dataset.DataSet" [ URL="#dataset.DataSet" label = "{dataset/DataSet|+calib_level : ivoa:integer\l+creator : ivoa:string\l+contributor : ivoa:string\l+publisher_did : ivoa:string\l+target : ivoa:string\l}" fillcolor="/set312/5" ] ; "timeseries:dataset.DependantModelDescriptor" [ URL="#dataset.DependantModelDescriptor" label = "{dataset/DependantModelDescriptor|+name : ivoa:string\l+ivoid : ivoa:string\l+url : ivoa:string\l}" fillcolor="/set312/5" ] ; "timeseries:data.Anything" [ URL="#data.Anything" label = "{data/Anything}" fillcolor="/set312/6" ] ; "timeseries:data.Point" [ URL="#data.Point" label = "{data/Point|+timestamp : ivoa:real\l}" fillcolor="/set312/6" ] ; "timeseries:data.Points" [ URL="#data.Points" label = "{data/Points}" fillcolor="/set312/6" ] ; edge [color="blue", arrowhead="open", arrowtail="diamond",dir="both",fontsize="10"] "timeseries:TimeSerie" -> "timeseries:spaceaxis.RefFrame" [headlabel="1",label="spaceFrame",labelfontsize=10] ; "timeseries:TimeSerie" -> "timeseries:dataset.DataSet" [headlabel="1",label="dataSet",labelfontsize=10] ; "timeseries:TimeSerie" -> "timeseries:spaceaxis.RefPosition" [headlabel="1",label="refPosition",labelfontsize=10] ; "timeseries:TimeSerie" -> "timeseries:timeaxis.RefFrame" [headlabel="1",label="timeFrame",labelfontsize=10] ; "timeseries:TimeSerie" -> "timeseries:wavelengthaxis.RefBand" [headlabel="1",label="filter",labelfontsize=10] ; "timeseries:TimeSerie" -> "timeseries:data.Points" [headlabel="0..1",label="points",labelfontsize=10] ; "timeseries:TimeSerie" -> "timeseries:dataset.DependantModelDescriptor" [headlabel="0..1",label="dependantModelDescriptor",labelfontsize=10] ; "timeseries:data.Point" -> "timeseries:data.Anything" [headlabel="1",label="observable",labelfontsize=10] ; "timeseries:data.Points" -> "timeseries:data.Point" [headlabel="0..*",label="point",labelfontsize=10] ; edge [color="green", arrowhead="open", arrowtail="none"] "timeseries:data.Points" -> "timeseries:data.Point" [headlabel="0..*",label="points",labelfontsize=10] ; }