Hi Tom,

In terms of conceptual model, I prefer to "loosely type" my nodes by the 
properties they contain. So "Pam Ward" is a person by dint of the firstname and 
lastname properties on that node.

For tags, I would probably just have several "tagged" relationship from 
"Conservation of Historic Buildings" to various nodes that are tags (that is, 
they have a "tag_name" property).

The stuff you're doing with doc_node, person_node, etc could perhaps be done 
with indexing instead to make the core graph less busy.

To help a bit with your points on traversals. It's quite do-able to find paths 
in a graph, that's a very common use case. The traverser API (both the stable 
one and the experimental one) can help with that. I also have a simple Social 
Network example (in Java) that covers some of that stuff. Ping me off list if 
you want a .zip of it.

For more intricate use cases where you want someone who matched most 
attributes, I think you'll end up at the core API making your own traversal 
algorithm using Node.getRelationships(...), Node.getProperty(...), and 
Relationship.getEndNode() and friends.

Jim
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to