I am searching for a great graph database for locating set crossing points -- taking any two nodes and searching at whether their edge endpoints "overlap." Social networking example could be two take a look at a couple and find out whether or not they are are attached to the same people.

I have attempted to obtain FlockDB (in the folks at Twitter) working, because intersection functions are built-in, but found there wasn't much when it comes to user community/support. So any recommendations of other graph databases, especially in which the type of intersection functionality I am searching for already is available...?

Is not that simply the least pathways between your two nodes with length == 2 ?

In Neo4j you should use the shortestPath() Finder in the GraphAlgoFactory for your.

This could let you know if there's an association:

Node from_node = index.get("guid", "user_a").getSingle();
Node to_node = index.get("guid", "user_b").getSingle();
if(from_node != null && to_node != null) {
  RelationshipExpander expander = Traversal.expanderForAllTypes(Direction.BOTH);
  PathFinder<Path> finder = GraphAlgoFactory.shortestPath(expander, 2);
  if(finder.findSinglePath(from_node, to_node) != null) {
    //Connected by at least 1 common friend
  } else {
    //Too far apart or not connected at all
  }
}

This could let you know who're the most popular buddies are:

Node from_node = index.get("guid", "user_a").getSingle();
Node to_node = index.get("guid", "user_b").getSingle();
if(from_node != null && to_node != null) {
  RelationshipExpander expander = Traversal.expanderForAllTypes(Direction.BOTH);
  PathFinder<Path> finder = GraphAlgoFactory.shortestPath(expander, 2);
  Iterable<Path> paths = finder.findAllPaths(from_node, to_node);
  if(paths != null) {
    for(Path path : paths) {
      Relationship relationship = path.relationships().iterator().next();
      Node friend_of_friend = relationship.getEndNode();
    }
  } else {
    //Too far apart or not connected at all
  }
}

This code is a touch rough and it is much simpler to convey in Cypher (obtained from the Cheet Sheet within the Neo4J Server console (fantastic way to have fun with Neo4J once you populate a database):

START a = (user, name, "user_a")
MATCH (a)-[:FRIEND]->(friend)-[:FRIEND]->(friend_of_friend)
RETURN friend_of_friend

This provides you with a listing from the nodes shared between to otherwise disconnected nodes. You are able to pass this question for an embedded server thought the CypherParser class.