<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">HI Hugo<o:p></o:p></p>
<p class="MsoNormal">It is as you mention in the end:<o:p></o:p></p>
<p class="MsoNormal">The reference from AB to B should have multiplicity 1. The relation between A and AB has multiplicity * (could be 1..* in some cases).<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">I think this is the proper, non-ugly solution:<o:p></o:p></p>
<p class="MsoNormal">In a sense the AB defines the “role” a particular B plays in the definition of the A.<o:p></o:p></p>
<p class="MsoNormal">To have an explicit concept for that (AB) is a very common pattern.<o:p></o:p></p>
<p class="MsoNormal">The AB allows you to define extra attributes (often a “role” indeed) for the B it represents.<o:p></o:p></p>
<p class="MsoNormal">I don’t know how that might play out in your context, but for example if A is Paper, B is Person, that AB could be Author (with affiliation, way to write the name for the particular paper, who is main contact etc).
<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Note, in a traditional relational representation of the model &nbsp;this is actually the standard way to represent the relationship.
<o:p></o:p></p>
<p class="MsoNormal">With a separate AB table with foreign keys to the A and B tables.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Hope this helps<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Cheers<o:p></o:p></p>
<p class="MsoNormal">Gerard<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> dm-bounces@ivoa.net &lt;dm-bounces@ivoa.net&gt; <b>On Behalf Of
</b>Hugo Buddelmeijer<br>
<b>Sent:</b> Tuesday, May 28, 2019 6:16<br>
<b>To:</b> dm@ivoa.net<br>
<b>Subject:</b> How to Aggregate? Appendix A.1 and Figure 23 unclear<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal">Dear Data Modelers,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Could someone please give me a VO-DML/XML example of the Aggregation pattern shown in Figure 23 of VO-DML-REC-v1.0?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><b>Background:</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">VO-DML-REC-v1.0 gives various arguments to why aggregation is excluded VO-DML. These reasons make sense. Using a composition has it's advantages and is indeed how aggregation is implemented in our relation database backends.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">But the document is not quite clear on how to represent something like an aggregation. The only prose it has is &quot;aggregation can be represented by the pattern illustrated in Figure 23&quot;, and this figure is not clear to me.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><b>Problem:</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Here is figure 22, the UML aggregation:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; <b>A</b> blue-open-diamond-arrow-&gt; <b>B</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; <b>A&nbsp;</b><b><span style="font-family:&quot;Cambria Math&quot;,serif;color:blue">◇⟶</span> B</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Figure 23, the VO-DML aggregation pattern:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; <b>A</b>&nbsp; blue-filled-diamond-arrow-&gt; <b>AB</b> green-arrow-&gt;
<b>B</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; <b>A </b><b><span style="font-family:&quot;Cambria Math&quot;,serif;color:blue">◆⟶</span> AB&nbsp;</b><b><span style="font-family:&quot;Cambria Math&quot;,serif;color:lime">⟶</span> B</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">My interpretation of figure 23 is that the blue-filled-diamond-arrow represents a composition. This makes sense: every A is composed of one AB (among other things), and AB's are only used for composing A's. So far so good.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">But the green-arrow is a normal reference right? So the AB refers to 0 or more B's. This again violates the multiplicty guidelines as stated in 4.19. What am I missing?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><b>Goal:</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">A bit more background for clarification. What I'm modeling is the relationship between a MasterDark and a set of RawDarks. That is, a MasterDark calibration frame is created by median stacking (or whatever) a set of RawDark calibration
 frames of a specific time period.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">So both the RawDark and the MasterDark are standalone entities. Any MasterDark instance should refer to many RawDark instances somehow. The same RawDark can be used in the creation of many MasterDark instances. And RawDarks can be used
 for other things than creating MasterDarks. How to do this in VO-DML?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">(There is some overlap here with ProvenanceDM obviously. I haven't yet looked how it is solved there.)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><b>Solution?:</b><o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">Maybe the idea is that an A is composed of multiple AB's and that each AB refers to a single B?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">That does work but looks rather ugly to me.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Hugo<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
</div>
</body>
</html>