To add to this, following method lets me add properties to the relations 
but I need to create relations using "Create Unique" 
(http://blog.safaribooksonline.com/2013/08/07/managing-uniqueness-with-py2neo/)

# create two nodes with a connecting relationship
alice, bob, rel = graph_db.create(
    {"name": "Alice"}, {"name": "Bob"},
    (0, "KNOWS", 1, *{"since": 2006}*)
)



On Wednesday, 25 December 2013 16:17:40 UTC+5:30, Abhishek Gupta wrote:
>
> Yes, you were right. Shortest path works in both directions. I was trying 
> for djikstra's, but the method that I use to create relationships isn't 
> letting me add properties to the relations. Eg. 
>
>  chain = neo4j.Path(firstNode, triplet[1], secondNode)
>   path = chain.get_or_create(db)..
>
> I want to add property to the relation triplet[1] say {cost : 0.5}. And 
> also, since I have added a lot of such relations already in my graph I need 
> some method to assign random costs to these relations.
>
> Regards
> Abhishek
>
> On Wednesday, 25 December 2013 02:14:48 UTC+5:30, Johannes Mockenhaupt 
> wrote:
>>
>> This is a bit of a guess as I haven't worked with the REST API directly 
>> yet, but is the 'direction' parameter mandatory? And if so, would it 
>> take 'both' instead of 'out', like with the other APIs? Failing that, 
>> Cypher has the shortestPath function[1] which doesn't require a 
>> direction. That's also another way to invoke the algorithm. 
>>
>> [1] 
>> http://docs.neo4j.org/chunked/milestone/query-match.html#_shortest_path 
>>
>> On 12/24/2013 07:55 PM, Abhishek Gupta wrote: 
>> > Thanks for such an insightful comment, and the attached link. I was 
>> able 
>> > to write my query as a directed search using certain structural 
>> properties. 
>> > 
>> > | 
>> > MATCH p=((alpha 
>> > 
>> {name:"alpha_name"})-[r1]->(node1)-[r2]->(node2)<-[r3]-(node3)<-[r4]-(beta{name:"beta_name"}))RETURN
>>  
>>
>> > p; 
>> > | 
>> > 
>> > But I am facing another problem related to my original problem. My 
>> > actual problem statement is to find shortest path in the weighted 
>> > undirected graph. 
>> > 
>> > Firstly, if I want to use Dijakstra's algorithm as given 
>> > on http://docs.neo4j.org/chunked/milestone/rest-api-graph-algos.html 
>> > then they operate on the directed graph. 
>> > Q: If I have to use these algorithms than do I have to make duplicate 
>> > edges, or is there any other solution? 
>> > 
>> > Secondly, py2neo doesn't seem to support these algorithms. 
>> > Q: Is rest api and java based solutions only approach to invoke these 
>> > algorithms? 
>> > 
>> > Thanks again for replying. 
>> > Abhishek 
>> > 
>> > 
>> > On Tuesday, 24 December 2013 21:56:44 UTC+5:30, Johannes Mockenhaupt 
>> wrote: 
>> > 
>> >     As you probably know, Neo4j only supports directed relationship. 
>> The 
>> >     idea is to make you think about what the direction means for your 
>> >     domain. While at creation time you have to specify a direction, 
>> you're 
>> >     free to ignore direction at query time - you don't have to create a 
>> >     second relationship going backwards just for queries (or speed). 
>> >     This is 
>> >     what you most often do. However, in some cases, when you really 
>> want to 
>> >     make the point that a relation is unidirectional in termns of the 
>> >     domain, you'd create a second relationship with the inverse 
>> direction. 
>> >     At first, this felt like a workaround to me, but now I really like 
>> that 
>> >     I'm somewhat forced to thing about what the direction means for the 
>> >     domain. 
>> >     For a practical example, you might look at the second picture at 
>> >     this[1] 
>> >     (okay, my) graph gist. At the bottom right, there are the two modes 
>> >     that 
>> >     "Spring Data Neo4j" supports, which are both an alternative to each 
>> >     other. Here it makes sense to have two relationships back and 
>> forth, as 
>> >     they're an alternative to each other in terms of the domain and 
>> also 
>> >     allow me to do a directed query like "Show me the alternatives to 
>> X", 
>> >     where each mode shall list the other as an alternative. 
>> > 
>> >     Hope that helps, I wasn't sure whether you're asking for a best 
>> >     practice 
>> >     way to insert relationships using Python or generally more in the 
>> sense 
>> >     of domain modelling. I've obvisouly picked the second 
>> interpretation to 
>> >     answer to and it probably won't hurt to consider those aspects in 
>> any 
>> >     case :-) 
>> > 
>> >     [1] 
>> >     
>> http://gist.neo4j.org/?github-jotomo/neo4j-gist-challenge//learning-graph/learning-graph.adoc
>>  
>> >     <
>> http://gist.neo4j.org/?github-jotomo/neo4j-gist-challenge//learning-graph/learning-graph.adoc>
>>  
>>
>> > 
>> > 
>> >     On 12/24/2013 05:02 PM, Abhishek Gupta wrote: 
>> >     > What is the best way to create undirectional relationships in 
>> >     neo4j? I 
>> >     > am using neo4j, py2neo. Here is how I insert the nodes and the 
>> >     > relationships: 
>> >     > 
>> >     > | 
>> >     > index_name =db.get_or_create_index(neo4j.Node,"index_name") 
>> >     > 
>> >     > defcreate_node(name): 
>> >     >  returnindex_name.get_or_create("name",name,{"name":name}) 
>> >     > 
>> >     > definsert_triplet(triplet): 
>> >     >  firstNode  =create_node(triplet[0]) 
>> >     >  secondNode =create_node(triplet[2]) 
>> >     >  chain =neo4j.Path(firstNode,triplet[1],secondNode) 
>> >     >  path =chain.get_or_create(db) 
>> >     > | 
>> >     > 
>> >     > Thanks in advance for replying. 
>> >     > 
>> >     > Regards 
>> >     > Abhishek 
>> >     > 
>> >     > -- 
>> >     > You received this message because you are subscribed to the 
>> Google 
>> >     > Groups "Neo4j" group. 
>> >     > To unsubscribe from this group and stop receiving emails from it, 
>> >     send 
>> >     > an email to [email protected] <javascript:>. 
>> >     > For more options, visit https://groups.google.com/groups/opt_out 
>> >     <https://groups.google.com/groups/opt_out>. 
>> > 
>> > -- 
>> > You received this message because you are subscribed to the Google 
>> > Groups "Neo4j" group. 
>> > To unsubscribe from this group and stop receiving emails from it, send 
>> > an email to [email protected]. 
>> > For more options, visit https://groups.google.com/groups/opt_out. 
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to