8
$\begingroup$

There are numerous graph theoretic tools/packages. Each with its pros and cons. What should be the semantics/syntax of a programming language meant to solve graph theoretic problems?

$\endgroup$
  • 2
    $\begingroup$ Your question starts off asking about a graph theoretic programming language and then ends talking about graph drawing packages. What is it that you want? $\endgroup$ – Dave Clarke Dec 21 '10 at 10:00
  • $\begingroup$ I want both in one place and more. Authoring facilities too. $\endgroup$ – user770 Dec 21 '10 at 10:09
  • 3
    $\begingroup$ This question lacks focus - the answers you've gotten are to the question "what are theoretically sound programming languages for graph problems," which is on topic for CSTheory and stackexchange. You may get better answers if you can narrow things down from "both in one place and more" to something more specific. $\endgroup$ – Rob Simmons Dec 21 '10 at 14:29
  • 1
    $\begingroup$ In particular, if you're interested in the question "what should be a mathematically correct paradigm and how do you decide it?", such a question would definitely be on-topic for CSTheory as an independent question from the one you seem to be asking here. $\endgroup$ – Rob Simmons Dec 21 '10 at 14:31
  • $\begingroup$ @Rob : Ok, I'm changing the question title. Though I didn't ask that one. I was looking for an environment like Mathematica. That has superior publishing/authoring capabilities, like latex. Better syntax specialized for graph theory. Better visualization capabilities. Sagemath is a viable option for linux familes, but not for pcs. $\endgroup$ – user770 Dec 21 '10 at 17:14
20
$\begingroup$

You might want to look at The Graph Programming Language GP. From the linked page:

GP (for Graph Programs) is a rule-based, nondeterministic programming language for solving graph problems at a high level of abstraction, freeing programmers from handling low-level data structures. The core of GP consists of four constructs: single-step application of a set of conditional graph-transformation rules, sequential composition, branching and iteration.

Sandra Steinert devoted her PhD thesis to the topic.

There's also a Hoare logic for reasoning about the correctness of such programs.

$\endgroup$
  • $\begingroup$ GP's main focus is to make graph programs more readable. $\endgroup$ – user770 Dec 21 '10 at 10:19
  • $\begingroup$ That's one way to interpret "at a higher level of abstraction". $\endgroup$ – Dave Clarke Dec 21 '10 at 10:21
  • $\begingroup$ Yes. But, then there are other two objectives left. An authoring and visualizing environment. $\endgroup$ – user770 Dec 21 '10 at 10:27
  • 2
    $\begingroup$ The tikz/pgf latex package is quite flexible and can produce pretty diagrams. Maybe this is more along the lines of what you want. $\endgroup$ – Dave Clarke Dec 21 '10 at 10:32
10
$\begingroup$

I'm not entirely sure what you want. But have you looked at:

$\endgroup$
  • $\begingroup$ Thanks. Yes, I've except PADS. I want an environment, wherein I can author, process, visualize graph based papers, algorithms, problems etc. $\endgroup$ – user770 Dec 21 '10 at 10:24
  • $\begingroup$ For me, using a combination of NetworkX, Latex with PGF, suffices. But, I was thinking for more. Doing all of these at one place. $\endgroup$ – user770 Dec 21 '10 at 10:39
6
$\begingroup$

Take a look at the Sage Project, which makes python more mathy, and includes networkx and nice visualization stuff. Their list of graph function might be wiki.sagemath.org/graph_survey or wiki.sagemath.org/graph.

$\endgroup$
  • $\begingroup$ Sagemath is awesome, no doubt. I regret I use windows. VMWare dist is a memory hog. $\endgroup$ – user770 Dec 21 '10 at 17:56
5
$\begingroup$

Sazzad - I'm a bit frustrated with your responses. You have been given useful answers and suggestions, yet you remain unsatisfied. Either use the best-of-breed tools that are available on your system for several aspects of graph research, or write your own.

$\endgroup$
  • $\begingroup$ :P Actually I didn't expect any correct answer. As there isn't any. I wanted to brainstorm several ideas. Also wanted to know what the experts think about it. Like whether what I was thining is possible at all. If so, what are the theoretical bases etc. Now it seems, I've asked to many questions in one place. $\endgroup$ – user770 Dec 22 '10 at 14:51
  • $\begingroup$ And thanks for the advice, 'write your own'. I definitely would. Sagemath is a very good alternative. It already support latex. Has a great graph theory package. Superb visual routines. So, probably it would be best to include GP syntax/semantics etc. And, there is another big challenge. To make a windows port. $\endgroup$ – user770 Dec 22 '10 at 14:54
  • 1
    $\begingroup$ I didn't mean to come off as snippy as I did in my answer. I design new algorithms for k-clique exists, maximal cliques, and graph isomorphism, as well as boolean satisfiability and simplification, and factoring. I write my own software for instance generation and problem solution in C++ on a Windows environment and am not using any graph libraries. I've used the Amalfi graph database. I've experiemented with some of the tools mentioned for drawing graphs. $\endgroup$ – Craig Holman Dec 22 '10 at 19:34
  • 1
    $\begingroup$ @Sazzad: for future, note that this is a Q&A site, if you don't think your question can be answered in the first place you should not ask it here, such questions will be closed as "not a real question", at least it should be a Community Wiki if not closed. Please read " How to ask a good question " and the site's FAQ. $\endgroup$ – Kaveh Dec 23 '10 at 6:57
3
$\begingroup$

Gremlin is one. It has extensive documentation and is well developed. I believe it is in use by a group at AT&T. Also, it is cross platform (if you care about such things). There's a presentation by the author on his website, but I can't add an additional hyperlink to this post because I'm a new user.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy