Thank you for the code, I will use it as starting point of learning gremlin.

Sent from my BlackBerry® smartphone from Sinyal Bagus XL, Nyambung Teruuusss...!

-----Original Message-----
From: Marko Rodriguez <[email protected]>
Sender: [email protected]
Date: Fri, 17 Jun 2011 07:31:26 
To: Neo4j user discussions<[email protected]>
Reply-To: Neo4j user discussions <[email protected]>
Subject: Re: [Neo4j] Find 2nd degree friends in order of mutual friend

Hi,

In Gremlin (http://gremlin.tinkerpop.com), friends of a friend (FOAF) who are 
not my friends:

        x = [] as Set
        g.v(1).out('friend').aggregate(x).out('friend').except(x)

- x is a Set to save intermediate friend vertices to to exclude (except) from 
the final step.
- g is your graph (e.g. g = new Neo4jGraph('/tmp/graph'))
- g.v(1) will grab vertex 1 by its id

If you give me some particular things you want to say, I can provide you the 
Gremlin code to do it.

Thanks,
Marko.

http://markorodriguez.com

On Jun 17, 2011, at 7:08 AM, [email protected] wrote:

> Oh thank you,
> 
> As I mentioned, I am new to neo4j. So a little sample code would be very 
> useful in my learning process. :)
> 
> My current state is that I managed to add few nodes, and add friend 
> relationship between several nodes.
> 
> User - friend - other node.
> 
> Friend is relationship
> 
> I don't have a very big node number so I think your suggested approach will 
> work.
> 
> Fajar
> 
> Sent from my BlackBerry® smartphone from Sinyal Bagus XL, Nyambung 
> Teruuusss...!
> 
> -----Original Message-----
> From: Peter Neubauer <[email protected]>
> Sender: [email protected]
> Date: Fri, 17 Jun 2011 14:12:48 
> To: Neo4j user discussions<[email protected]>
> Reply-To: Neo4j user discussions <[email protected]>
> Subject: Re: [Neo4j] Find 2nd degree friends in order of mutual friend
> 
> Hi Fajar,
> this is a depth 2 traversal from the person in question. While
> exhaustively traversing his friends, you increase the group count as
> for each FOAF you get on the second step.
> 
> However, we have seen edge cases with supernodes where in a social
> network, persons can have 50K friends. There, you might use heuristics
> or indexing approaches to make this very fast.
> 
> If you have some more details, I could write down the query in Gremlin
> or Cypher (http://docs.neo4j.org/chunked/snapshot/cypher-query-lang.html),
> but in principle, it would be like
> https://github.com/tinkerpop/gremlin/wiki (actually using 3 steps, I
> think we could get it down to 2) for Gremlin.
> 
> In neo4j, if things are not cached, only the parts the data that are
> needed for this traversal wil be loaded from disk, so you don't need
> to hold all the graph in cache for this, since it is a data-local
> operation.
> 
> HTH
> 
> Cheers,
> 
> /peter neubauer
> 
> GTalk:      neubauer.peter
> Skype       peter.neubauer
> Phone       +46 704 106975
> LinkedIn   http://www.linkedin.com/in/neubauer
> Twitter      http://twitter.com/peterneubauer
> 
> http://www.neo4j.org               - Your high performance graph database.
> http://startupbootcamp.org/    - Öresund - Innovation happens HERE.
> http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.
> 
> 
> 
> On Fri, Jun 17, 2011 at 1:33 PM, Fajar Maulana Firdaus
> <[email protected]> wrote:
>> Hi all,
>> 
>> I am new to neo4j and excited to know more about graph database.
>> 
>> First of all, could anyone please help me to figure out the documentation
>> about the query or rest client?
>> 
>> Then, back to my question, I want to find 2nd degree friends but ordered by
>> number of mutual friend. I understand that if I have all data in memory, I
>> could've traverse the graph to 2nd level, and keep counter for each nodes in
>> 2nd level. So in away its like finding all paths from start node to all
>> second degree friend, but if we do that, it would be inefficient.
>> 
>> Does anyone have any idea how to do this with neo4j?
>> 
>> Thank you,
>> Fajarmf
>>_______________________________________________
>> Neo4j mailing list
>> [email protected]
>> https://lists.neo4j.org/mailman/listinfo/user
>> 
>_______________________________________________
> Neo4j mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
>_______________________________________________
> Neo4j mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user

_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to