Hi all,

Hopefully most of you are familiar with the traversal framework that was
introduced in 1.1. It's powerful and provides for reusable traversal
descriptions. It has some flaws though, and I would like to discuss one of
them here.

The traversal framework has this concept of pruning, which basically is an
evaluation for each position, deciding whether or not to continue the
traversal down this branch. The caveat here is that when you evaluate a
position, you can't opt to prune before it. If you want to exclude a node
based on information from that node, filtering has to be done on top of the
pruning, with the same algorithm - once to stop the traversal, and once to
exclude the node.

So there are actually two orthogonal concepts at work here: whether to stop
or not, and whether to include or not. What I'm proposing is to merge these
two into one evaluator. That evaluator would return one of four values:

CONTINUE_AND_INCLUDE_NODE,
STOP_AND_INCLUDE_NODE,
STOP_AND_EXCLUDE_NODE, or
CONTINUE_AND_EXCLUDE_NODE.

This would replace both the filtering and the pruning. I'm just throwing
this out there to see if anyone else has had the same idea. Like / dislike?

-- 
David Montag
Neo Technology, www.neotechnology.com
Cell: 650.556.4411
david.mon...@neotechnology.com
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to