Hi all,

Working on Atlas repository in Titan, I am surprised by the way traits are 
stored : traits type are Vertices, which seems ok, but traits instances are 
Vertices too.
So, when you attach a trait to an entity, Atlas will create a new Vertex 
(containing the attributes that are set) and draw an Edge between the entity 
instance Vertex and that trait instance Vertex. There is no edge between the 
trait instance Vertex and the trait type Vertex : there is just a __typeName 
attribute in the trait instance that contains the traits type (please, tell me 
if I missed something...).

Actually, I would rather have expected to have the trait instance stored as an 
Edge between the entity instance Vertex and the trait type Vertex. That edge 
would contain the attributes values.
The advantages of modeling traits instances as Edges are :

-          The link between a trait and its type is enforced by the database 
itself and does not rely on a __typeName attribute.

-          Less Vertices in the database, without growing Edges number.

-          The data stored in Titan will look more like a graph : today, my 
data consists of lots of Vertices that are isolated (all types) and there are 
few edges. So I think we cannot really take advantage of the DB 
graph-orientation.

What do you think about that ?

Regards,

Benjamin



Reply via email to