Skip to content

shallyan/GSoC-Rogas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

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

Introduction

Rogas 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.

Work Description during Google Summer of Code 2016

My work is contained in this repository, not including the file in Rogas which is not authored with Yan Xiao. Specifically, with my mentors Minjian Liu and Qing Wang's guidance, it contains three parts:

  • Design and implement the Web GUI
  • Design and implement the visualisation of graph operations(CREATE, RANK, PATH, CLUSTER)
  • Design and implement the backend server and modify Rogas for connecting to front-end

Algorithms for Large Graph Visualization

Graph Cluster Operation

    1. Rescale the size of each cluster according to their proportion
    1. Score each node according to their inner-cluster edges, cluster-cluster edges and target node's degree
    1. Find max connected component in each cluster
    1. Get specified number nodes in max connected component from high score to low score
    1. Find neighbor nodes around the picked nodes

Graph Rank Operation

    1. Get ranked nodes
    1. Find nodes on the shortest path between ranked nodes
    1. Find nodes around the ranked nodes

Graph Path Operation

    1. Get nodes on the path
    1. Find nodes around the path

Main Features

  • Database info panel can show the schema information of relations and graphs in the database
  • Database info panel can be customised by users
  • 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 paged loading for large tables
  • Support graph creation, rank, path, cluster visualization
  • Support large graph visualization
  • Support interactive operations on graphs (drag, double click, zoom in/out)
  • Support relation - graph data mapping
  • Support dynamic setting

Work Screenshots

  • Graph CREATION Operation create

  • Graph RANK Operation: Realtion Tab rankrelation

  • Graph RANK Operation: Graph Visualization rankgraph

  • Graph CLUSTER Operation: Graph Visualization cluster

  • Graph PATH Operation: Graph Visualization and Relation - Graph Data Mapping path_graph

  • Database Info dbinfo

Dependencies

Note: If you use Mac OS, the Graph-tool installed doesn't support OpenMP by default, so that you need set 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. More informative name of query tabs
    1. Reduce the discreteness of large graph when max number of display nodes is small
    1. More distinguishability in PATH visualization when the number of paths increases

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.

About

Google Summer of Code 2016 - Rogas Project

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published