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