[DAS2] splits and joins in writeback, an alternative

Andrew Dalke dalke at dalkescientific.com
Fri Apr 28 17:04:30 UTC 2006


Roy, in private email, pointed out that my writeback spec doesn't
include ways to track splits and joins.  Here's my response to that
topic.  I sent it to him last night but resend it here now because
I hope to talk about it on Monday.

   ------

The use model we have is a curator works on a section of the genome
for a while (a few hours to perhaps a day).  Once done all of the
changes are sent back to the server.

The writeback document in the current draft looks like

<WRITEBACK>
  <MESSAGE>...</MESSAGE>
  <DELETES>...</DELETES>
  <TYPES>...</TYPES>
  <FEATURES>...</FEATURES>
</WRITEBACK>

The message at this point would be "I did a lot of work in the last
few hours."  It's not very useful.

Thinking of it as code, it's like working for a day on code without
checking things into version control, so you end up with commit messages
with a dozen items in them and it's hard to see which code
changes corresponds to which item.

What if the writeback delta looked like

<WRITEBACK>
  <MESSAGE>
  <CHANGE>
    <REASON>...</REASON>
    <DELETES>...</DELETES>
    <TYPES>...</TYPES>
    <FEATURES>...</FEATURES>
  </CHANGE><CHANGE>
    <REASON>...</REASON>
    <DELETES>...</DELETES>
    <TYPES>...</TYPES>
    <FEATURES>...</FEATURES>
  </CHANGE>
   ...
</WRITEBACK>

The MESSAGE is set by the person, the REASON is set by the software,
perhaps with details using a controlled vocabulary ("split",
"merge", "creation", ...)

It feels to me like this gives essentially the same information
as explicitly listing how A comes from {X0, X1, X...} features.
Perhaps not exactly the same detail, but close enough for what
people want.  On the plus side it can handle complicated changes,
like if 3 features (ranges 100-300, 310-600, 620-800) are
converted into 2 (ranges 100-500 and 510-800)

<CHANGE>
   <REASON>merged three elements into two</REASON>
   <DELETES><DELETE uri="http://whatever/the/middle/one"></DELETES>
   <FEATURES>
    <FEATURE uri="http://whatever/the/left/one" ...>
       <LOC uri="http://whatever/seg1" range="100:500"/>
       ...
    </FEATURE>
    <FEATURE uri="http://whatever/the/right/one" ...>
       <LOC uri="http://whatever/seg1" range="510:800"/>
       ...
    </FEATURE>
   </FEATURES>
</CHANGE>


					Andrew
					dalke at dalkescientific.com




More information about the DAS2 mailing list