bio4j/dynamograph — pull request #27 by alberskib (2014-06-08 21:58:43+00:00)
Title: switching to tabula

We had discussion with @eparejatobes about his new library [tabula](https://github.com/ohnosequences/tabula) and its application in *dynamograph*.

#### parsing
* parser should read xml/csv files and produce *scrarf* *nodes* and *vertices* of the given model

#### modeling tables
For the given *scrarf* model we can define abstractions that will encapsulate tables (from *tabula* that we be used for storing *edges* and *nodes* something like:

```scala
trait VertexTable[V <: Vertex] extends HashKeyTableType(name, region, hash)

trait EdgeTables[E <: Edge] {
trait InTable extends AnyCompositeKeyTable {...}
trait OutTable extends AnyCompositeKeyTable {...}
}
```

So here we will have explicit binding of our model and used tables.

#### writing to dynamodb
Than for writing nodes and edges we will need other traits:

```scala
trait VertexWriter[V <: Vertex] {
val vertexTable: VertexTable[V]
def write(v: vertex): Item[VertexWriter#Tpe] //or List[WriteOperations]
}
```

choosing right output types for writing methods is a not trivial question. Good thing that you don't need to wait until *tabula* will finished. Because actual writing can be completely separated. In the end output should be transformed anyway into something like List[WriteOperations] - input for actual DynamoDBwriter.

#### reading from DynamoDB

for that we need something `DynamoDBVertex` and `DynamoDBEdge` that will use `VertexTable` and `EdgeTables`.

#### tabula state
It realized as `ohnosequences %% tabula % 0.1.0-SNAPSHOT`