Skip to content

CornucopiaRG/Rogas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Rogas(https://github.com/CornucopiaRG/Rogas) is a project for Network Analytics

Introduction

Rogas (Relational-Oriented Graph Analytic System) not only can provides a high-level declarative query language to formulate analysis queries, but also can unify different graph algorithms within the relational environment for query processing.

The Rogas has three main components: (1) a hybrid data model, which integrates graphs with relations so that we have these two types of data structures respectively for network analysis and relational analysis; (2) a SQL-like query language, which extends standard SQL with graph constructing, ranking, clustering, and path finding operations; (3) a query engine, which is built upon PostgreSQL and can efficiently process network analysis queries using various graph systems and their supporting algorithms.

Main Features

  • Database info panel can show the schema information of relations and graphs in the database
  • Query input panel can be extended to a larger space for complicated queries
  • Show queries and their results as browser-tab style
  • Asynchronous execution with loading animation
  • Support regular relational queries and graph queries with graph operations (RANK, CLUSTER and PATH)
  • Show the result of a large table in pages
  • Support visualisation for graph queries with graph operations (RANK, CLUSTER and PATH)
  • Support interactive operations on graphs (drag, double click, zoom in/out)
  • Support relation - graph data mapping

Work Screenshots

  • Relational result for a query with the RANK operation rank_relation

  • Graphical result for a query with the RANK operation rank_graph

  • Relational result for a query with the CLUSTER operation cluster_relation

  • Graphical result for a query with the CLUSTER operation cluster_graph

  • Relational result for a query with the PATH operation path_relation

  • Graphical result for a query with the PATH operation & Relation-Graph Mapping path_graph

  • Database Info dbinfo

Process of Graph Visualization

Graph Rank Operation

    1. Get targeted nodes based on the RANK result
    1. Find nodes on the shortest path among the selected nodes
    1. Find nodes around the selected nodes

Graph Cluster Operation

    1. Rescale the size of each cluster according to the proportion
    1. Score each node according to the inner-cluster edges, cluster-cluster edges and target node's degree
    1. Find the max connected component in each cluster
    1. Get certain amount (be specified in setting) of nodes in the max connected component from high score to low score
    1. Find neighbor nodes around the selected nodes

Graph Path Operation

    1. Get targeted nodes based on the PATH result
    1. Find nodes around the selected nodes

Dependencies

Note: If you use Mac OS, the Graph-tool installed doesn't support OpenMP by default, you can change the IS_GRAPH_TOOL_OPENMP = False in rogas/config.py.

We also make use of Bootstrap(http://getbootstrap.com/), D3.js(https://d3js.org) and ExpandingTextareas(https://github.com/bgrins/ExpandingTextareas), which are integrated into the system so you don't need install them by yourself.

How to Run

  • Set up your database information in rogas.config.py to connect to Postgresql
  • Python run.py
  • Open the browser by entering http://localhost:12345/

Future Work

    1. find a more informative naming strategy for different query tabs
    1. improve the graph visualisation for large graphs (million or billion nodes), including implementing good layouts and improving the efficiency
    1. make the visualisation for PATH operations more informative, in particular of dealing with multiple paths
    1. add more functions about user interaction, such as the content of graphs can correspondingly change when doing zoom-in/out
    1. build an algorithm store that includes different types of algorithms for network analysis

More Information

More details about the Rogas, please refer to the thesis "Towards a Unified Framework for Network Analytics" collected in Australian National University (http://users.cecs.anu.edu.au/~u5170295/publications/thesis-minjian.pdf). You can also contact minjian.liu@anu.edu.au or qing.wang@anu.edu.au for more information.

Instructor

Qing Wang (qing.wang@anu.edu.au)

Contributors

  • Minjian Liu (minjian.liu@anu.edu.au): design the system framework, the query language and the Rogas logo; construct the relation-graph hybrid data model; implement the query processing; implement the prototype GUI (the GUI shown in the VLDB2016 demo paper -- Rogas: A Declarative Framework for Network Analytics ), supervise the work of GSoC2016-ShallYan.
  • Yan Xiao (xiaoyanict@foxmail.com): design and implement the Web GUI (the work of GSoC2016-ShallYan), design and implement the visualisation of graph operations(CREATE, RANK, PATH, CLUSTER), design and implement the backend server and modify the Rogas' query engine in order to fitting the front-end.
  • Omid Rezvani (mojtaba.rezvani@anu.edu.au): implement the local community search functionality.
  • Chong Feng (u4943054@anu.edu.au): implment the node-tree data structure and query caches for optimisation.

About

Project for Network Analytics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published