package esl.cuenet.ranking; import esl.cuenet.ranking.network.NeoEntityBase; import esl.cuenet.ranking.network.NeoOntoInstanceImporter; import esl.cuenet.ranking.network.PersistentEventEntityNetwork; import esl.cuenet.ranking.sources.EmailSource; import esl.cuenet.ranking.sources.FacebookPhotoSource; import esl.system.SysLoggerUtils; import org.apache.log4j.Logger; import org.junit.BeforeClass; import org.junit.Test; import org.neo4j.cypher.javacompat.ExecutionEngine; import org.neo4j.cypher.javacompat.ExecutionResult; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.Transaction; import org.neo4j.kernel.EmbeddedGraphDatabase; import java.io.IOException; import java.util.Map; public class ConstructEEN { private Logger logger = Logger.getLogger(SourceImportTest.class); private String directory = "/data/graph_db/sources"; @BeforeClass public static void setUp() { SysLoggerUtils.initLogger(); } @Test public void sourceInstantiationTest() throws IOException { logger.info("Starting Test"); GraphDatabaseService graphDb = new EmbeddedGraphDatabase( directory ); EventEntityNetwork network = new PersistentEventEntityNetwork( graphDb ); NeoEntityBase entityBase = new NeoEntityBase(graphDb); Transaction tx = graphDb.beginTx(); try { entityBase.construct(); tx.success(); } catch (Exception e) { e.printStackTrace(); tx.failure(); } finally { tx.finish(); } NeoOntoInstanceImporter importer = new NeoOntoInstanceImporter(network, new SourceInstantiator[]{ new EmailSource(), new FacebookPhotoSource() }); try { importer.populate(entityBase); } catch (Exception e) { e.printStackTrace(); } finally { graphDb.shutdown(); } } @Test public void countNodesAndEdgesInGraph() { logger.info("Counting Nodes and Edges in: " + directory); GraphDatabaseService graphDb = new EmbeddedGraphDatabase( directory ); String query = "START n=node(*) RETURN COUNT(n)"; ExecutionEngine engine = new ExecutionEngine( graphDb ); ExecutionResult results = engine.execute(query); for (Map<String, Object> result: results) { for ( Map.Entry<String, Object> column : result.entrySet() ) { logger.info(column.getKey() + " " + column.getValue()); } } query = "START r=rel(*) RETURN COUNT(r)"; engine = new ExecutionEngine( graphDb ); results = engine.execute(query); for (Map<String, Object> result: results) { for ( Map.Entry<String, Object> column : result.entrySet() ) { logger.info(column.getKey() + " " + column.getValue()); } } graphDb.shutdown(); } }