[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