[DAS2] complex features

Andrew Dalke dalke at dalkescientific.com
Tue Mar 21 18:21:11 EST 2006


I've been working on the data model some, trying to get a feel
for complex features.  I've also been evaluating how GFF3 handles
them.

Both use a parent/child link, though GFF3 only has the reference
to the parent while DAS has both.  That means DAS clients can
determine when all of the complex feature have been downloaded.
GFF3 potentially requires waiting until the end of the library,
though there is a way to hint that all the results have been
returned.

Both allow complex graphs.  That is, both allow cycles.  I
assume we are restricting complex features to DAGs, but even
then the following is possible

   [root1]     [root2]     [root3]
     | \          |         /
     |  \         |        /
     |   ------------------
     |  |    node 4        |
     |   ------------------
     |  /
     | /
     |/
  [node 5]

Node 4 has three parents (root1, root2 and root3) and
node 5 has two parents (root1 and node4)

This may or may not make biological sense.  I don't know.  I
only point out that it's there.

I feel that complex annotations must only have a single root
element, even if it's a synthetic one with no location.

Next, consider writeback, with the following two complex features

  [root1]                  [root2]
   |    \                   |
   |      \                 |
   |        \               |
[node1.1]  [node1.2]     [node2.1]


Suppose someone adds a new "connector" node

                       >-->---.
                       |      V
  [root1]              |   [root2]
   |    \              |    |
   |      \            |    |
   |        \          ^    |
[node1.1]  [node1.2]  |  [node2.1]
     |                 |
     V                 |
   [connector]-->--->--^

Should that sort of thing be allowed?  What's the model
for the behavior?

It seems to me there's a missing concept in DAS relating to
complex features.  My model is that the "complex feature" is
its own concept, which  I've been calling an "annotation".
All simple features are annotations.  The connected nodes of
a complex feature are also annotations.

As such, two annotations cannot be combined like this.
Writeback only occurs at the annotation level, in that
new feature elements cannot be used to connect two existing
annotations.

We might also consider having a new interface for annotations
(complex features), so they can be referred to by URI.  I
don't think that's needed right now.


					Andrew
					dalke at dalkescientific.com




More information about the DAS2 mailing list