Giter Site home page Giter Site logo

lars-meijer / graphtereffects2 Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 10.74 MB

Current graph visualization solutions lack the functionality to easily create rich visualizations that intuitively show what these graphs represent. For the Design Project (TCS MOD11) we have created the library and tool Graphter Effects that can generate these customized visualizations using our domain-specific logic language Graafvis. (Duplicate of https://github.com/meteoorkip/GraphterEffects for uni project)

License: Apache License 2.0

Java 32.29% ANTLR 0.22% Gosu 67.44% CSS 0.05%

graphtereffects2's Introduction

Build Status

This product is currently being further developed. The available version is an work-in-progress and not yet suited for regular use.

Graphter Effects consists of a tool, for people who want to use Graphter Effects on its own, and a Java library, for people who want to integrate Graphter Effects in their code.

The manual and the releases can be found at: github.com/meteoorkip/GraphterEffects/releases.

Graphter Effects

Introducing Graafvis

Current graph visualization solutions lack the functionality to easily create rich visualizations that intuitively show what these graphs represent. For the Design Project (TCS MOD11) we have created the library and tool Graphter Effects that can generate these customized visualizations using our domain-specific logic language Graafvis

Graafvis input

Input 1: a Graafvis script specifying layout rules for graph visualisation

River crossing example script

Graafvis may be considered as "shorthand Prolog with special predicates". A .vis-script contains simple logic rules that define relations between two domains: the input graph and the output visualization.

Specific predicates...

  • describe information from the input graph (e.g. node, edge, degree, inShortestPath)
  • specify consequences for the visualization (e.g. shape, image, left, distance, align)

Graph input

Input 2: a graph which contains information that can be visually represented

River crossing example graph

Thirteen graph import formats are currently supported, including DOT, GraphML and GXL.

Process

Both the Graafvis script and the graph file are loaded and checked for errors. They are then converted to Prolog rules and a Prolog library.

Library design diagram

Three programming paradigms are involved:

Logic

Using Prolog, the logic programming done in Graafvis is solved such that visualization solutions are found.

Imperative

When during the Prolog solving process graph information is required, it is retrieved at run time from the Prolog library using imperative Java code.

Constraint

Numeric values such as position and dimensions are solved using Choco solver: a constraint logic programming interface.

The resulting visualization elements are afterwards bundled into an SVG file.

Visualization output

Output: a generated* visualization using the script and the input graph above

Visualization output with constraints *The constraints depicted with arrows and labels are added to the generated visualization for clarification purposes

The SVG image resulting from the Graphter Effects visualization process contains visualization elements that abide the given Graafvis rules. It contains a representation of the graph with relatable and intuitive imagery.

Product

Graphter Effects has proven to be a strong universal solution: in Graafvis one can define both complex and simple visualisations in a quick and intuitive way.

The library includes...

  • error feedback
  • a vast number of visualization and graph predicates
  • a user manual
  • possible extension by third parties through Java implemented predicates

The tool includes...

  • an integrated compiler (the library)
  • a rich code editor with syntax highlighting
  • debug tools for inspection of generated rules and visualization elements

Contributors

Developers

  • Ron van Bree
  • Lindsay Kempen
  • Sven Konings
  • Hans van der Laan
  • Pim van Leeuwen

Client & supervisor

Arend Rensink

Contact

Website: rebrand.ly/graphtereffects

Email: [email protected]

test

graphtereffects2's People

Contributors

svenkonings avatar ronvree avatar lars-meijer avatar

Watchers

 avatar Pim 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.