[Haskell-cafe] ANNOUNCE: Graphalyze-0.1

Ivan Miljenovic ivan.miljenovic at gmail.com
Mon Sep 29 12:11:58 EDT 2008

I'd like to announce the initial release of my graph-theoretic
analysis library, Graphalyze [1], the darcs repo for which is also
available [2].

This is a pre-release of the library that I'm writing for my
mathematics honours thesis, "Graph-Theoretic Analysis of the
Relationships in Discrete Data".  I'll also be releasing a tool that
uses this library to analyse the structure of Haskell code, that I'm
tentatively calling SourceGraph.  As it stands, the library has a
number of algorithms included, some of which I've developed from
scratch (e.g. clique finder), and others are implementations of
published algorithms (mainly the two clustering algorithms).  The code
is meant to be more readable than efficient, and I wanted to explore
ways of developing algorithms that match more closely the way graphs
work (which makes FGL a much nicer fit than matrix-based or list-based
graph data structures).

This library is only a pre-release, as whilst everything in there
works (at least it does for me), I'd like to get some feedback from
the community, especially since this is my first ever released solo
piece of code (I've coded assignments, and worked on projects with
others, but have never released anything that I've been solely
responsible for before).  In particular, have I written the .cabal
file correctly?

Also, I'd like advice on something else: the part of the library that
I'd like to develop still is the reporting framework.  The end goal of
the library is for the user to specify which algorithms they want
applied to their data, and then the library produces a document with
the results.  This document is _not_ meant to be machine readable.  As
such, I can think of three options:

1) Plain text, with graphs either in seperate image files (using
graphviz) or else as plaintext (FGL's show function).
2) Generate LaTeX code.
3) Generate Pandoc [3] compatible Markdown, and let the user convert
it into whatever format they prefer.

I'm not a big fan of option 1), as it is probably the most unreadable
in general.  I'd like to use Pandoc, as it is theoretically possible
to convert it to numerous other filetypes, however with inline linking
there's still no way (at least I can find) to have images scaled to
the correct size automatically.  So unless I pre-scale the images,
using option 3) and then converting to PDF via LaTex generation of the
Markdown sources is probably out.   As such, what would you all prefer
to read as a documentation-style report of your software?

1) A PDF via LaTeX, which has the advantage of being printable and all
in one file
2) HTML via Pandoc, which lets you have the images linked separately
from the document, and thus no need to shrink them down (they can stay
at the natively generated size, and thus easier to zoom in, etc.).

Finally, I'll be giving my honours talk on this next Monday.  So if
you're in Brisbane on 6 October and interested, it'll be on at 2PM at
the University of Queensland (where as part of it I'll be explaining
to mathematicians why Haskell is a great language to use for
mathematics... or at least trying to!).

[1] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Graphalyze
[2] http://code.haskell.org/Graphalyze/
[3] http://johnmacfarlane.net/pandoc

Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com

More information about the Haskell-Cafe mailing list