Re: [Neo4j] Regarding Sub grouping In Graph DB

2011-04-26 Thread Mattias Persson
2011/4/25 Chris Gioran chris.gio...@neotechnology.com:
 If I understand you correctly, you want to create groups of your nodes
 + relationships that exist in your graph. The way you do that depends
 on some things.

 1. What is the degree of logical separation you desire? If two nodes,
 A and B have a relationship in common, will they always end up in the
 same category? If not, should the relationship remain?*
 2. How do you plan to access those nodes? If you want to find out the
 category of nodes and relationships as you iterate over your data,
 then maybe a tagging property would work. If you want direct access to
 the nodes that belong to a category, an option is a supernode which
 represents that category and have it relate to every node that belongs
 to it.

 Creating a tagging property has the advantage of being indexable and
 works both on nodes and relationships. A supernode (the quotes are
 justified since we are talking about a simple node that just receives
 special semantics, not some inherently different node kind) is a more
 graphy way of doing things and probably faster too.

Example of tagging property:

   // Add
   Node resource = graphDb.createNode();
   resource.setProperty( category, some category );
   categoryIndex.add( resource, category, resource.getProperty(
category ) );

   // Get
   for ( Node resource : categoryIndex.get( category, some category ) ) {
   // Each resource with that category
   }

Example of having the tags as nodes with relationships to its group members:

   // Add
   // TODO: check if the category you're creating exists first,
   // or create all categories up front
   Node category = categoryIndex.get( name, some category ).getSingle();
   Node resource = graphDb.createNode();
   resource.createRelationshipTo( category, CATEGORY );

   // Get
   Node category = categoryIndex.get( name, some category ).getSingle();
   for ( Relationship rel : category.getRelationships( CATEGORY,
Direction.INCOMING ) ) {
   Node resource = rel.getStartNode();
   }

Where the latter solution is traversal friendly, whereas the former isn't.

 I am sure there are other ways and I would also like to see how people
 categorize entities in their graphs.

 *What currently cannot be done is role-based hard separation of
 nodes. Suppose there are two nodes, a and b with a relation a--b. Say
 a ends up in category A and b in category B and the relationship
 stays. If someone with access to A accesses a, then she will be able
 to access b, no matter what.

 cheers,
 CG

 On Mon, Apr 25, 2011 at 9:53 PM, pooja naik npooj...@yahoo.com wrote:
 Hi Chris,
 Thanks for a prompt response.
 I am trying to create a Network Graph Infrastructure for SP 's , in such a
 way that they can lease out the parts of this network infrastructure to
 other small companies.
 This requirement make it necessary to create a logical boundary on the main
 Network graph , in other words to create a overlay graphs on the underlying
 physical graph.
 Does categories would still help me here?
 Is there any another way to do it?
 Let me know
 Thanks n Regards
 Pooja
 
 From: Chris Gioran chris.gio...@neotechnology.com
 To: Neo4j user discussions user@lists.neo4j.org
 Sent: Monday, April 25, 2011 11:34 AM
 Subject: Re: [Neo4j] Regarding Sub grouping In Graph DB

 Hi Pooja,

 what would qualify as a subcategory in your use case?

 The most straightforward thing I can come up with is a property in
 each node named category or something similar, that has an
 enumerated value (not a Java Enumeration but something treated as
 such) that would place the node in its category. This is one of many
 ways to go ahead, depending on what degrees of separation you want,
 flexibility etc.
 Could you elaborate a little on what you are trying to do?

 cheers,
 CG

 On Mon, Apr 25, 2011 at 9:27 PM, pooja naik npooj...@yahoo.com wrote:
 Hi all,


 I am using ne04j for a IP network resource graph in my project.
 I would like to know whether there is a way to divide the graphical
 network into sub categories in neo4j?

 Any help or pointers is appreciated.

 Thanks
 Pooja
 ___
 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




-- 
Mattias Persson, [matt...@neotechnology.com]
Hacker, Neo Technology
www.neotechnology.com
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Regarding Sub grouping In Graph DB

2011-04-25 Thread Chris Gioran
Hi Pooja,

what would qualify as a subcategory in your use case?

The most straightforward thing I can come up with is a property in
each node named category or something similar, that has an
enumerated value (not a Java Enumeration but something treated as
such) that would place the node in its category. This is one of many
ways to go ahead, depending on what degrees of separation you want,
flexibility etc.
Could you elaborate a little on what you are trying to do?

cheers,
CG

On Mon, Apr 25, 2011 at 9:27 PM, pooja naik npooj...@yahoo.com wrote:
 Hi all,


 I am using ne04j for a IP network resource graph in my project.
 I would like to know whether there is a way to divide the graphical network 
 into sub categories in neo4j?

 Any help or pointers is appreciated.

 Thanks
 Pooja
 ___
 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