
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@gmail.com IvanMiljenovic.wordpress.com