caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] poll for a graph library
@ 2004-01-29 12:34 Jean-Christophe Filliatre
       [not found] ` <Pine.LNX.4.58.0401291409180.3416@seekar.cip.physik.uni-muenchen.de>
  2004-01-30  9:40 ` fva
  0 siblings, 2 replies; 10+ messages in thread
From: Jean-Christophe Filliatre @ 2004-01-29 12:34 UTC (permalink / raw)
  To: caml-list


Dear ocaml users,

Sylvain  Conchon, Julien  Signoles  and myself  have  started a  graph
library for ocaml. Before going further and releasing this library, we
would like to get some  feedback from people currently using graphs in
ocaml applications or willing to  do so. More precisely, we would like
to  know what  kind of  operations on  the graph  structure  and graph
algorithms are commonly used by such users.

Could you please tell us if you  are the author of a graph library not
already mentioned in the ocaml hump?

Please answer privately.

-- 
Jean-Christophe Filliâtre

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] poll for a graph library
       [not found] ` <Pine.LNX.4.58.0401291409180.3416@seekar.cip.physik.uni-muenchen.de>
@ 2004-01-29 13:32   ` Jean-Christophe Filliatre
  2004-01-29 14:10     ` Jacques Carette
                       ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Jean-Christophe Filliatre @ 2004-01-29 13:32 UTC (permalink / raw)
  To: Thomas Fischbacher; +Cc: signoles, conchon, caml-list


Thomas Fischbacher writes:
 > 
 > What do you mean by "graph library"?
 > 
 > A library of graph algorithms (highly desirable - right now I am working 
 > at a problem where efficient generation of planar graphs is THE main 
 > issue, and I do it in lisp/ocaml), a graph layout library in the sense 
 > of a re-implementation of graphviz in ocaml (would also be very nice to 
 > have), or a plotting library in the sense of gnuplot?
 > 
 > I think you should clarify this a bit more on the list...

You're right, I  should have been clearer. We didn't  want to give too
many details  before the first release,  but let's go.  Our library is
currently providing

 1. Several  data  structures for  graphs  (persistent or  imperative,
    directed  or not,  with labeled  edges  or not,  etc.), sharing  a
    common minimal signature (iterators over vertices, edges, etc.)

 2. Several  algorithms  over graphs,  written  as  functors and  thus
    independently of the graph  implementation (it means you can build
    your own data structure for graphs and still re-use the algorithms
    code). Currently we have  the following algorithms coded: Tarjan's
    strongly   connected   components,   Dijkstra's   shortest   path,
    Ford-Fulkerson's maximal flow,  Warshall's transitive closure, DFS
    and BFS traversal, cycle detection.

    We  are  currently  adding   random  graph  generations  based  on
    algorithms   from  Knuth's   Stanford  GraphBase,   including  the
    generation of random planar graphs.  (This at least seems to be in
    connection with what you're doing.)

 3. Utilities, such  as a graphviz output  --- an ascii  output in the
    DOT format  to be precise (So  we are not  re-implementing a graph
    layout library).

-- 
Jean-Christophe Filliâtre

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] poll for a graph library
  2004-01-29 13:32   ` Jean-Christophe Filliatre
@ 2004-01-29 14:10     ` Jacques Carette
  2004-01-29 14:31     ` Andrew Bagdanov
                       ` (4 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Jacques Carette @ 2004-01-29 14:10 UTC (permalink / raw)
  To: Jean-Christophe Filliatre, Thomas Fischbacher
  Cc: signoles, conchon, caml-list

Jean-Christophe Filliatre <Jean-Christophe.Filliatre@lri.fr> wrote:
>   2. Several  algorithms  over graphs,  written  as  functors and  thus
>      independently of the graph  implementation 

Sounds very useful.  One item I would very much like to see: when one is merely interested in using some (efficient!) 
graph algorithm, there is often a choice of data structures to be made.  Figuring out the asymptotics of each 
algorithm over each data structure is feasible, but should be quite unnecessary: it would be quite convenient if there 
were information functions [as part of the functor modules] which would output the asymptotic behaviour of the 
instantiations.

This would be especially useful as some data structure-algorithm pairs are woefully inefficient, especially when it 
comes to graphs!  

Jacques

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] poll for a graph library
  2004-01-29 13:32   ` Jean-Christophe Filliatre
  2004-01-29 14:10     ` Jacques Carette
@ 2004-01-29 14:31     ` Andrew Bagdanov
  2004-01-31 13:40       ` Eray Ozkural
  2004-01-29 14:54     ` Plotting library (was: Re: [Caml-list] poll for a graph library) Richard Jones
                       ` (3 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Andrew Bagdanov @ 2004-01-29 14:31 UTC (permalink / raw)
  To: Jean-Christophe Filliatre; +Cc: caml-list

Hi,

I'm about to begin a research project that concentrates on graph
representations and algorithmics in computer vision applications.  I
am wrapping up some work formalizing low-level image processing
patterns in OCaml, and was planning on continuing with OCaml for
higher-level analysis.

The library you describe sounds like an excellent starting point for
me.  A few things I think are important (from my perspective):

 1. Lightweight.  LEDA is, in my opinion, a mess.  Perhaps only an
    expression of my own personal syntactic prejudice, but reading my
    own LEDA code gives me a headache.

 2. Serialization.  Processing pipelines in computer vision
    applications (particularly in reseach environments) are stopped
    and started frequently to allow for tinkering in isolation.

 3. Choice of internal representation.  Despite obvious,
    problem/algorithm performance considerations, some techniques
    might call for adjacency representation (spectral methods, for
    example).

Anyway, it sounds great, and I can't wait to get my hands on it!

Cheers,

-Andy

Jean-Christophe Filliatre writes:
 > 
 > Thomas Fischbacher writes:
 >  > 
 >  > What do you mean by "graph library"?
 >  > 
 >  > A library of graph algorithms (highly desirable - right now I am working 
 >  > at a problem where efficient generation of planar graphs is THE main 
 >  > issue, and I do it in lisp/ocaml), a graph layout library in the sense 
 >  > of a re-implementation of graphviz in ocaml (would also be very nice to 
 >  > have), or a plotting library in the sense of gnuplot?
 >  > 
 >  > I think you should clarify this a bit more on the list...
 > 
 > You're right, I  should have been clearer. We didn't  want to give too
 > many details  before the first release,  but let's go.  Our library is
 > currently providing
 > 
 >  1. Several  data  structures for  graphs  (persistent or  imperative,
 >     directed  or not,  with labeled  edges  or not,  etc.), sharing  a
 >     common minimal signature (iterators over vertices, edges, etc.)
 > 
 >  2. Several  algorithms  over graphs,  written  as  functors and  thus
 >     independently of the graph  implementation (it means you can build
 >     your own data structure for graphs and still re-use the algorithms
 >     code). Currently we have  the following algorithms coded: Tarjan's
 >     strongly   connected   components,   Dijkstra's   shortest   path,
 >     Ford-Fulkerson's maximal flow,  Warshall's transitive closure, DFS
 >     and BFS traversal, cycle detection.
 > 
 >     We  are  currently  adding   random  graph  generations  based  on
 >     algorithms   from  Knuth's   Stanford  GraphBase,   including  the
 >     generation of random planar graphs.  (This at least seems to be in
 >     connection with what you're doing.)
 > 
 >  3. Utilities, such  as a graphviz output  --- an ascii  output in the
 >     DOT format  to be precise (So  we are not  re-implementing a graph
 >     layout library).
 > 
 > -- 
 > Jean-Christophe Filliâtre
 > 
 > -------------------
 > To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
 > Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
 > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Plotting library (was: Re: [Caml-list] poll for a graph library)
  2004-01-29 13:32   ` Jean-Christophe Filliatre
  2004-01-29 14:10     ` Jacques Carette
  2004-01-29 14:31     ` Andrew Bagdanov
@ 2004-01-29 14:54     ` Richard Jones
  2004-01-29 17:21     ` [Caml-list] poll for a graph library Jocelyn Sérot
                       ` (2 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Richard Jones @ 2004-01-29 14:54 UTC (permalink / raw)
  To: caml-list

On Thu, Jan 29, 2004 at 02:32:41PM +0100, Jean-Christophe Filliatre wrote:
>  > have), or a plotting library in the sense of gnuplot?

A plotting library would also be bloody useful.  So far I've written
two such libraries[1], one on top of the Gtk/lablgtk2 drawing area and
the other over OCamlGD/GD4O.  Is there a good solution to this which
I've been missing?

Rich.

[1] Not really very extensive or well-enough thought out to really
call them "libraries".

-- 
Richard Jones. http://www.annexia.org/ http://www.j-london.com/
Merjis Ltd. http://www.merjis.com/ - improving website return on investment
http://www.winwinsales.co.uk/ - CRM improvement consultancy

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] poll for a graph library
  2004-01-29 13:32   ` Jean-Christophe Filliatre
                       ` (2 preceding siblings ...)
  2004-01-29 14:54     ` Plotting library (was: Re: [Caml-list] poll for a graph library) Richard Jones
@ 2004-01-29 17:21     ` Jocelyn Sérot
  2004-01-29 22:19     ` David MENTRE
  2004-01-30 18:24     ` brogoff
  5 siblings, 0 replies; 10+ messages in thread
From: Jocelyn Sérot @ 2004-01-29 17:21 UTC (permalink / raw)
  To: Jean-Christophe Filliatre; +Cc: caml-list


Le 29 janv. 04, à 14:32, Jean-Christophe Filliatre a écrit :

>
>  3. Utilities, such  as a graphviz output  --- an ascii  output in the
>     DOT format  to be precise (So  we are not  re-implementing a graph
>     layout library).
>
Also a way of _reading_ DOT file formats ?

JS
--
E-mail: Jocelyn.Serot@l_a_s_m_e_a.u_n_i_v-bpclermont.fr
S-mail: LASMEA - UMR 6602 CNRS, Universite Blaise Pascal, 63177 Aubiere 
cedex
Tel: +33.(0)4.73.40.73.30 - Fax: +33.(0)4.73.40.72.62
http://wwwlasmea.univ-bpclermont.fr/Personnel/Jocelyn.Serot/Welcome.html
Valid e-mail: remove underscores (sorry, this is prevention against 
junk mail)

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] poll for a graph library
  2004-01-29 13:32   ` Jean-Christophe Filliatre
                       ` (3 preceding siblings ...)
  2004-01-29 17:21     ` [Caml-list] poll for a graph library Jocelyn Sérot
@ 2004-01-29 22:19     ` David MENTRE
  2004-01-30 18:24     ` brogoff
  5 siblings, 0 replies; 10+ messages in thread
From: David MENTRE @ 2004-01-29 22:19 UTC (permalink / raw)
  To: Jean-Christophe Filliatre
  Cc: Thomas Fischbacher, signoles, conchon, caml-list

Hello Jean-Christophe,

I'm using a specific graph in one of my program, hence the following
questions.

Jean-Christophe Filliatre <Jean-Christophe.Filliatre@lri.fr> writes:

>  1. Several  data  structures for  graphs  (persistent or  imperative,
>     directed  or not,  with labeled  edges  or not,  etc.), sharing  a
>     common minimal signature (iterators over vertices, edges, etc.)

Would your library allow to store graphs as somethink like hash table of
vertices (to able each all edges of a vertex in constant time)?

Would your library allow to store graphs with valuated edges
(i.e. storing data structure on edges)?

Would you allow several kind of edges in the same graph?


>  2. Several  algorithms  over graphs,  written  as  functors and  thus
>     independently of the graph  implementation (it means you can build
>     your own data structure for graphs and still re-use the algorithms
>     code). Currently we have  the following algorithms coded: Tarjan's
>     strongly   connected   components,   Dijkstra's   shortest   path,
>     Ford-Fulkerson's maximal flow,  Warshall's transitive closure, DFS
>     and BFS traversal, cycle detection.

Would you allow to use your algorithms with user defined functions? For
example, for cycle detection, I need to traverse the graph according to
stored values on edges and vertices, as well as accumulated values
during graph traversal.

>  3. Utilities, such  as a graphviz output  --- an ascii  output in the
>     DOT format  to be precise (So  we are not  re-implementing a graph
>     layout library).

It would have been nice to have graph display library. But I recognized
it is a difficult and very specific topic.


What would be the (approximate) size of your library? My current
graph-related code is about 475 lines, including code documentation and
autotests. I'm sure that your code is more complete and robust that
mine, and bigger also. However, it is not so easy to use external
code. :)

Yours,
d.
-- 
 David Mentré <dmentre@linux-france.org>

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] poll for a graph library
  2004-01-29 12:34 [Caml-list] poll for a graph library Jean-Christophe Filliatre
       [not found] ` <Pine.LNX.4.58.0401291409180.3416@seekar.cip.physik.uni-muenchen.de>
@ 2004-01-30  9:40 ` fva
  1 sibling, 0 replies; 10+ messages in thread
From: fva @ 2004-01-30  9:40 UTC (permalink / raw)
  To: Jean-Christophe Filliatre; +Cc: caml-list

HI there

I've been using heavily annotated graphs for unfolding searches in 
artificial intelligence. I need annotations in both nodes and edges, the 
type of edges being a sum of several informations among them costs.
So incremental building and a control structure for traversal (queues, 
stacks, priority stacks) is a must. Lazy expansion of graphs would also 
be a boon, but I guess this can be coded into the functional recursion 
traversal.

Regards and thank you very much for asking. Please count me as one 
looking eagerly forwards to seeing your code working,

    F. Valverde

Jean-Christophe Filliatre wrote:

>Dear ocaml users,
>
>Sylvain  Conchon, Julien  Signoles  and myself  have  started a  graph
>library for ocaml. Before going further and releasing this library, we
>would like to get some  feedback from people currently using graphs in
>ocaml applications or willing to  do so. More precisely, we would like
>to  know what  kind of  operations on  the graph  structure  and graph
>algorithms are commonly used by such users.
>
>Could you please tell us if you  are the author of a graph library not
>already mentioned in the ocaml hump?
>
>Please answer privately.
>
>  
>

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] poll for a graph library
  2004-01-29 13:32   ` Jean-Christophe Filliatre
                       ` (4 preceding siblings ...)
  2004-01-29 22:19     ` David MENTRE
@ 2004-01-30 18:24     ` brogoff
  5 siblings, 0 replies; 10+ messages in thread
From: brogoff @ 2004-01-30 18:24 UTC (permalink / raw)
  To: Jean-Christophe Filliatre
  Cc: Thomas Fischbacher, signoles, conchon, caml-list

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: TEXT/PLAIN; charset=X-UNKNOWN, Size: 2938 bytes --]

It is interesting that the authors of the C++ Boost Graph Library wrote a
paper comparing languages for their ability to support generic programming by
using the development of a graph library as an example, and one of the languages
they look at is SML. It's in the OOPSLA '03  proceedings I think.

Selfishness forces me to put in a plea for including a graph isomorphism
algorithm in your library. The application I have in mind is netlist comparison.

-- Brian



On Thu, 29 Jan 2004, Jean-Christophe Filliatre wrote:

>
> Thomas Fischbacher writes:
>  >
>  > What do you mean by "graph library"?
>  >
>  > A library of graph algorithms (highly desirable - right now I am working
>  > at a problem where efficient generation of planar graphs is THE main
>  > issue, and I do it in lisp/ocaml), a graph layout library in the sense
>  > of a re-implementation of graphviz in ocaml (would also be very nice to
>  > have), or a plotting library in the sense of gnuplot?
>  >
>  > I think you should clarify this a bit more on the list...
>
> You're right, I  should have been clearer. We didn't  want to give too
> many details  before the first release,  but let's go.  Our library is
> currently providing
>
>  1. Several  data  structures for  graphs  (persistent or  imperative,
>     directed  or not,  with labeled  edges  or not,  etc.), sharing  a
>     common minimal signature (iterators over vertices, edges, etc.)
>
>  2. Several  algorithms  over graphs,  written  as  functors and  thus
>     independently of the graph  implementation (it means you can build
>     your own data structure for graphs and still re-use the algorithms
>     code). Currently we have  the following algorithms coded: Tarjan's
>     strongly   connected   components,   Dijkstra's   shortest   path,
>     Ford-Fulkerson's maximal flow,  Warshall's transitive closure, DFS
>     and BFS traversal, cycle detection.
>
>     We  are  currently  adding   random  graph  generations  based  on
>     algorithms   from  Knuth's   Stanford  GraphBase,   including  the
>     generation of random planar graphs.  (This at least seems to be in
>     connection with what you're doing.)
>
>  3. Utilities, such  as a graphviz output  --- an ascii  output in the
>     DOT format  to be precise (So  we are not  re-implementing a graph
>     layout library).
>
> --
> Jean-Christophe Filliâtre
>
> -------------------
> To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
> Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
>

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Caml-list] poll for a graph library
  2004-01-29 14:31     ` Andrew Bagdanov
@ 2004-01-31 13:40       ` Eray Ozkural
  0 siblings, 0 replies; 10+ messages in thread
From: Eray Ozkural @ 2004-01-31 13:40 UTC (permalink / raw)
  To: Andrew Bagdanov; +Cc: Jean-Christophe Filliatre, caml-list

On Thursday 29 January 2004 16:31, Andrew Bagdanov wrote:
>  1. Lightweight.  LEDA is, in my opinion, a mess.  Perhaps only an
>     expression of my own personal syntactic prejudice, but reading my
>     own LEDA code gives me a headache.

LEDA sucks quite a bit. It's a Microsoft MFC style library (read: not general 
purpose)

-- 
Eray Ozkural (exa) <erayo@cs.bilkent.edu.tr>
Comp. Sci. Dept., Bilkent University, Ankara  KDE Project: http://www.kde.org
http://www.cs.bilkent.edu.tr/~erayo  Malfunction: http://malfunct.iuma.com
GPG public key fingerprint: 360C 852F 88B0 A745 F31B  EA0F 7C07 AE16 874D 539C

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2004-01-31 13:40 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-29 12:34 [Caml-list] poll for a graph library Jean-Christophe Filliatre
     [not found] ` <Pine.LNX.4.58.0401291409180.3416@seekar.cip.physik.uni-muenchen.de>
2004-01-29 13:32   ` Jean-Christophe Filliatre
2004-01-29 14:10     ` Jacques Carette
2004-01-29 14:31     ` Andrew Bagdanov
2004-01-31 13:40       ` Eray Ozkural
2004-01-29 14:54     ` Plotting library (was: Re: [Caml-list] poll for a graph library) Richard Jones
2004-01-29 17:21     ` [Caml-list] poll for a graph library Jocelyn Sérot
2004-01-29 22:19     ` David MENTRE
2004-01-30 18:24     ` brogoff
2004-01-30  9:40 ` fva

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).