<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">At ESO we have some rare cases whereby the list of progenitors of a dataset could be long various thousand entries.<div class=""><br class=""></div><div class="">In this case the datalink response is obviously huge, making an impossible user experience, and having clients hanging.<br class=""><div class="">&nbsp;</div></div><div class="">To solve this, we have done the following:</div><div class=""><br class=""></div><div class="">if the number of progenitors is below a modest amount (say 25) then the full provenance is shown</div><div class=""><br class=""></div><div class="">otherwise, no provenance is shown other than one record which points to the full provenance (still a valid datalink document).</div><div class=""><br class=""></div><div class="">Such record looks like this:</div><div class=""><br class=""></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp;&lt;TR&gt;</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp;&lt;TD&gt;<a href="ivo://eso.org/ID?ADP.2016-12-01T16:07:25.587&lt;/TD&gt;" class="">ivo://eso.org/ID?ADP.2016-12-01T16:07:25.587&lt;/TD&gt;</a></span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class="">&nbsp; &nbsp; &nbsp;&lt;TD&gt;&lt;![CDATA[<a href="http://archive.eso.org/datalink/links?ID=ivo://eso.org/ID?ADP.2016-12-01T16:07:25.587&amp;EXCLUDE=ALL&amp;INCLUDE=progenitor]" class="">http://archive.eso.org/datalink/links?ID=ivo://eso.org/ID?ADP.2016-12-01T16:07:25.587&amp;EXCLUDE=ALL&amp;INCLUDE=progenitor]</a>]&gt;&lt;/TD&gt;</div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp;&lt;TD /&gt;</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class="">&nbsp; &nbsp; &nbsp;&lt;TD /&gt;</div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp;&lt;TD&gt;#progenitor&lt;/TD&gt;</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp;&lt;TD&gt;Link that brings to the actual list of progenitors (processing provenance)&lt;/TD&gt;</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp;&lt;TD&gt;application/x-votable+xml&lt;/TD&gt;</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp;&lt;TD /&gt;</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp;&lt;TD /&gt;</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp;&lt;TD /&gt;</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp;&lt;/TR&gt;</span></div><div class="">&nbsp;&nbsp;</div><div class="">For that, we had to implement two ad-hoc input parameters, EXCLUDE and INCLUDE,</div><div class="">so that we can have full control of what is shown when.</div><div class=""><br class=""></div><div class="">With this mechanism, our clients (e.g. the ESO science portal) can query for anything they like, e.g.</div><div class="">to get only derivation and provenance, one would use: EXCLUDE=ALL&amp;INCLUDE=progenitor&amp;INCLUDE=derivation</div><div class="">or to get everything excluding provenance: INCLUDE=ALL&amp;EXCLUDE=progenitor</div><div class=""><br class=""></div><div class="">The presence of INCLUDE or EXCLUDE removes the default behaviour of showing only 1 link-record if more than 25 entries exist.</div><div class=""><br class=""></div><div class=""><div class="">I hope the above is still DataLink compliant… comments are welcome!</div><div class=""><br class=""></div></div><div class="">PS: We are about to release this new version of datalink possibly next week, along with all new versions of many archive services.</div><div class="">So, please do not try now the link above.</div><div class=""><br class=""></div><div class="">Alberto</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">&nbsp;</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div></body></html>