I think your model is a good start.

I'd probably add a label for :Graduate and :UnderGraduate to :Course nodes.

I think you have two models, the requirement model with a :REQUIRES 
relationship.
And the application model which involves the student their courses

(:Student)-[:TOOK]->(:Course)
(:Student)-[:APPLIES]->(:Application)-[:APPLIES_FOR]->(:Course)
(:Course)-[:REQUIRES]->(:Course)

I did the example here, hope it helps

http://graphgist.neo4j.com/#!/gists/dropbox-14493611%252Fmodeling_dependency_requirements_graduate_courses.adoc
 
<http://graphgist.neo4j.com/#!/gists/dropbox-14493611%2Fmodeling_dependency_requirements_graduate_courses.adoc>



> Am 07.11.2015 um 07:18 schrieb Rasik Fulzele <[email protected]>:
> 
> Thanks for your reply.
> Sorry, if I was not clear.
> I'll try to elaborate again with other example.
> 
> There are 3 under-graduate courses (A,B,C) and 2 graduate courses (M and N). 
> The courses are nodes. also, the transition from undergrad to grad happens 
> through an application process E which is also a node. 
> 
> So here are relationships
> 
> A precedes E
> B precedes E
> C precedes E 
> E precedes N
> E precedes M
> 
> Now the problem is graduate course N is allowed only for those who did 
> under-grad courses A and B. similarly graduate course M is allowed for 
> under-grad courses B and C. so following paths are invalid and would return 
> wrong results.
> A precedes E precedes M
> C precedes E precedes N
> 
> I think, rather taking care in query, the data modeling should be correct. 
> How to arrange above data in graph so that I get valid paths?
> 
> Thanks,
> R
> 
> 
> On Saturday, November 7, 2015 at 5:47:57 AM UTC+5:30, Michael Hunger wrote:
> perhaps you can be a bit more concrete?
> 
> which data has which dependencies
> 
> You can also specify predicates on node and relationship-properties for your 
> path
> 
> e.g. where a.time < b.time < c.time
> 
> Michael
> 
>> Am 06.11.2015 um 17:17 schrieb Rasik Fulzele <ras...@ <>gmail.com 
>> <http://gmail.com/>>:
>> 
>> Hi,
>> 
>> I'm new to neo4j and don't know what this problem is called as. So posting 
>> here without much exploration of previous posts.
>> 
>> I'm modeling data in graph but the combination of edges in paths become 
>> significant. How to model in such scenario?
>> 
>> for example,
>> create 
>> (node1)
>> ,(node2)
>> ,(node3)
>> ,(node4)
>> ,(node5)
>> ,(node6)
>> ,(node7)
>> ,(node1)-[:precedes]->(node5)
>> ,(node2)-[:precedes]->(node5)
>> ,(node3)-[:precedes]->(node5)
>> ,(node4)-[:precedes]->(node5)
>> ,(node5)-[:precedes]->(node6)
>> ,(node5)-[:precedes]->(node7)
>> 
>> when I try to find out list of all paths I'll get total 8 paths. But for my 
>> data, only few paths are significant and that should be my output.
>> ie. only 4 paths should be in output because data (of nodes) has 
>> dependencies. 
>> (node1)-[:precedes]->(node5)-[:precedes]->(node6)
>> (node3)-[:precedes]->(node5)-[:precedes]->(node6)
>> (node3)-[:precedes]->(node5)-[:precedes]->(node7)
>> (node4)-[:precedes]->(node5)-[:precedes]->(node7)
>> 
>> whereas path like (node1)-[:precedes]->(node5)-[:precedes]->(node7) is 
>> invalid combination.
>> 
>> Question is how to model such cases so that I always get proper combination 
>> of edges.
>> 
>> Thanks,
>> Rasik
>> 
>> -- 
>> 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 neo4j+un...@ <>googlegroups.com <http://googlegroups.com/>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
> 
> 
> -- 
> 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] 
> <mailto:[email protected]>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
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/d/optout.

Reply via email to