Haskell Biding to GraphViz

Student:
João Paulo Barbosa
Overview
This project consists of creating a Haskell binding to AT&T's
GraphViz library. This involves using a Foreign Function Interface (FFI) to invoke the C functions of the GraphViz library from within Haskell. To simplify the task of writing this FFI invocations, a tool named
GreenCard is beeing used. Next, an abstraction layer is introduced to hide all the miscelaneous procedures of GraphViz and to provide a simple, but powerfull interface to the Haskell application.
With a minimal binding it's possible to replace the graph visualization support in the HaLex library (generating DOT) by invocations to the foreign functions specified. Also, new instances are declared of the types witch one wants to visualize. HaLex is an instance, since UMinho's Haskell Libraries uses GraphViz widely. This is of course a incremental work and hopefully in the end one could visualize and interact with data.
Implementation
To be updated soon... need to sleep... (Knock, Knock.... wake up.... :)) (Who's there?) (That's me! :))
Greencard
Graphviz
Core
Attribute
Graphable
Layoyt
Render
UI
Future Work
Download
Checkout module Graphics.Graphviz from Research.PURe CVS repository.
PUReSoftware
Presentations
Recomended Literature
- An open graph visualization system and its applications to software engineering, Emden R. Gansner and Stephen C. North, Software - Practice and Experience, 1999.
- Drawing graphs with Graphviz, Emden R. Gansner, 2004.
- The Haskell 98 Foreign Function Interface 1.0: An Addendum to the Haskell 98 Report, Manuel Chakravarty (ed.), 2002,2003.
--
JoaoPBarbosa - 04 Mar 2005