I'd probably go for that as well.

It's harder to go with a gut feeling for the case where you have many
"categories"... it may be better to go with relationships then, because you
gain the traversal aspect of it which you don't really get if you go with
properties.

2010/8/1 rick.bullo...@burningskysoftware.com <
rick.bullo...@burningskysoftware.com>

> My instinct says a boolean property would be easier and faster, but ymmv.
>
> ----- Reply message -----
> From: "Alex D'Amour" <adam...@iq.harvard.edu>
> Date: Sun, Aug 1, 2010 2:32 pm
> Subject: [Neo4j] Attributes or Relationship Check During Traversal
> To: "Neo user discussions" <user@lists.neo4j.org>
>
> Hello all,
>
> I have a question regarding traversals over a large graph when that
> traversal depends on a discretely valued attribute of the nodes being
> traversed.
>
> As a small example, the nodes in my graph can have 2 states -- on and off.
> I'd like to traverse over paths that only consist of active nodes. Since
> this state attributes can only take 2 values, I see two possible approaches
> to implementing this:
>
> 1) Use node properties, and have the PruneEvaluator and filter Predicate
> check to see whether the current endNode has a property called "on".
>
> 2) Create a state node which represents the "on" state. Have all nodes that
> are in the on state have a relationship of type "STATE_ON" incoming from
> the
> "on" node. Have the PruneEvaluator and filter Predicate check whether the
> node has a single relationship of type STATE_ON, INCOMING.
>
> Which is closer to what we might consider best practices for Neo4j? The
> problem I see in implementation 1 is that that traversal has to hit the
> property store, which could slow things down. The problem with 2 is that
> there can be up to #nodes relationships coming from the on state node, and
> making this more efficient by setting up a tree of "on" state nodes seems
> to
> be manually replicating something that the indexing service has already
> accomplished.
>
> Also, how efficiently would each of these two implementations exploit
> caching (or is this irrelevant?)?
>
> Finally, would your answer change if we generalized this to a larger number
> of categories?
>
> Thanks,
> Alex
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Mattias Persson, [matt...@neotechnology.com]
Hacker, Neo Technology
www.neotechnology.com
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to