Giter Club home page Giter Club logo

graphviz-bench's Introduction

graphviz-bench

Implementation of a graph processing pipeline in the Apache Spark framework aimed at graph visualization:

  1. Data retrieval: The first step to create a linked data graph is retrieving data by issuing a SELECT SPARQL query to a triplestore or a federated linked database. The result of this query is a set of triples describing the entities and relationships of interest.

  2. Graph building: Afterwards, a graph is built from the retrieved data, which can be in-memory or stored in files as plain text (vertices and edge pairs), triples, etc. The objective of this task is to encode the graph in machine-processable format supported by a specific-purpose graph processing library.

  3. Graph calculations: Different graph measures can be calculated on the graph to improve the visualization. For example, the size and the colour of the vertices can be adjusted according to their degree; by using a more sophisticated ranking procedure, like the PageRank algorithm.

  4. Graph layout: Graph layout is the calculation of the spatial position of the vertices to offer a pleasant depiction and to facilitate the interpretation of the underlying information by the human users. A classic family of graph layout algorithms is force-based vertex placement, which computes attractive and repulsive forces for pairs of vertices to determine how close they should be drawn. Here we implement a Spark-based version of the Fruchterman-Reingold algorithm.

  5. Rendering (not included): Finally, the graph is displayed on the screen. Usually, a visualization library starts a layered process to translate the higher-level drawing primitives into instructions that are sent to the graphics driver and executed by the graphics card connected to the screen.

The code is adapted for benchmarking the performance of the complete process.

The implementation includes tests with four datasets:

  1. DrugBank: Drug to drug interactions from the Bio2RDF drugbank dump.

  2. DBPedia: Knowledge graphs from DBPedia.

  3. Synthetic graphs: Graphs generated by using the Erdös-Rényi model.

  4. SNAP: Graphs from the Stanford Network Analysis Platform dataset

We also include a reference implementation in sequential Java 8 based on Gephi, Jung and TinkerPop.

This work has been developed within the BIGFUSE project, and funded by the University of Granada and the Spanish Ministry of Education, Culture and Sport.

graphviz-bench's People

Contributors

jgromero avatar

Stargazers

qing yi avatar  avatar

Watchers

 avatar Miguel Molina-Solana avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.