Hi,
>>
> As I see it traversers are fundamentally different from pipes/gremlin, where
> the pipes/gremlin style is very explicit in which steps to traverse. F.ex.
> you must specify that it must first traverse relationships of type X and
> then of type Y a.s.o. and have an exact knowledge of the graph you're
> traversing.
Yes--you can specify label-types in order, or you don't have to:
while null() != $_
$_ := ./outE/inV[g:print(.)]
end
or if you only want it to take LOVES or KNOWS relationships
while null() != $_
$_ := ./ou...@label=g:list('LOVES','KNOWS')]/inV[g:print(.)]
end
> The neo4j traversers doesn't have that (although they will have soon), but
> they instead can traverse any graph with arbitrary depth and all that...
> f.ex. if you are "standing" on a file in a tree on depth D (i.e. there are D
> parent folders above it) and you'd like to know the OWNER of that file. If
> the OWNER relationships sits on the top-level folders and want to find it
> you'd just tell the traverser to traverse incoming TREE_CHILD and outgoing
> OWNER relationships and return nodes/paths which ends with and OWNER
> relationship and you have your results, however deep the file is in the
> tree.
Let me see here----
while null() != $_
$_ :=
./i...@label='TREE_CHILD']/outV/ou...@label='OWNER']/inV[g:print(.)]/../..
end
Little gross looking... but I think that is what you are saying...
> These two ways of traversing a graph complement each other, it's not that
> one is "better" than the other. Would you agree on this?
I will agree to nothing without my lawyers! :{P
(note: I use { as I have a mustache these days.)
There are many ways to skin a cat---climb a mountain---using a mailing list.
But in the end, there will only be 4 or so winners....
Take care,
Marko.
http://markorodriguez.com
_______________________________________________
Neo mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user