To Niels' approach, Wouldn't it be a very dense graph ? For e.g. there will be several people inter-connected by KNOWS; if we model KNOWS as a node, there would be lots of edges originating from it.
On Wed, Dec 7, 2011 at 5:16 PM, Alistair Jones < alistair.jo...@neotechnology.com> wrote: > Qualifying the relationships with an additional property (or properties) > sounds like a sensible approach. > > The simplest thing to do would be to have a boolean property to distinguish > the two types, so they would both have relationship type "KNOWS", and also > a boolean property "well". You could use this in a cypher query like this: > > start Alistair = node(1) match Alistair -[r:KNOWS]-> friend where r.well = > true return friend.name > > Alternatively, as Rick suggests, if you wanted a sliding scale of knowing, > you could have a numerical property, and then do more sophisticated > traversals. This is analogous to a weighted graph that you might use for > route planning, where each of the relationships is weighted with a property > "distance" or "time". In cypher: > > start Alistair = node(1) match Alistair -[r:KNOWS]-> friend where > r.how_well > 50 return friend.name > > This property-based approach is less sophisticated than Niels' true > relationship-type-hierarchy approach, but I guess it depends on your domain > what will be most appropriate. I think using properties is probably > simpler to implement if it meets your needs. > > -Alistair > > On 6 December 2011 14:14, Rick Otten <rot...@manta.com> wrote: > > > Can you do this with properties on the relationship? > > > > In your example a "KNOWS" relationship could have a "how well" property, > > with values 1 to 100. > > > > You could define "KNOWS_BETTER" as [ 50 < how well < 80 ]. > > "KNOWS_BEST" as [ 80 <= how well <= 100 ]. > > > > I'm not sure what the difference between a "sub relationship" and a > > "relationship qualified with properties" really is. > > > > > > -----Original Message----- > > From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] > > On Behalf Of Sourajit Basak > > Sent: Tuesday, December 06, 2011 6:09 AM > > To: user@lists.neo4j.org > > Subject: [Neo4j] Modeling subrelationships in Neo4j > > > > Is it possible to create subrelationships in neo4j ? For e.g. a > > relationship called KNOWS_BETTER as a subrelationship of KNOWS. > > > > Do I need to explicitly connect the nodes using both relationships for > the > > traversal to work ? Lets say, I create this > > > > neo4j --> KNOWS_BETTER --> graphDB, does this entails the following ? > > neo4j --> KNOWS --> graphDB. > > > > Such a scenario can be modeled in OWL Ontology, wondering if neo4j has > any > > capabilities. > > > > Note: Under the hood, most OWL Ontology implementations do create these > > *extra* inferred links internally. > > _______________________________________________ > > Neo4j mailing list > > User@lists.neo4j.org > > https://lists.neo4j.org/mailman/listinfo/user > > _______________________________________________ > > Neo4j mailing list > > User@lists.neo4j.org > > https://lists.neo4j.org/mailman/listinfo/user > > > _______________________________________________ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user