Hi,

On Wed, Oct 6, 2010 at 7:59 PM, MM.Brian <[email protected]> wrote:
> GraphLab’s visualization features and its rich plug-in support make it
> a powerful tool for both research and educational purposes.

Sage ships with a JavaScript based graph editor written by Radoslav
Kirov. All you need to do is load up the Sage GUI and study some
examples in the module

sage/graphs/graph_editor.py

But I see that GraphLab also offers animation (of graph algorithms, I
assume). That's awesome to have, especially when teaching an
introductory course in graph theory. An image is worth a thousand
words, but an animation is priceless.


> Besides,
> it’s an open source application!

If GraphLab is licensed under an open source license, please clearly
state so on the project's website [1]. It was only after some
time-consuming digging that I realized that GraphLab is licensed under
the GPLv2 [2] and possibly also under LGPL v2.1 [3]. A golden rule of
website design is: Don't make your user think or do a lot of work to
get any information relevant to a beginner.


> therefore we aim to add graphlab as
> one of the software packages used by sage.

You have three options in how you can package up GraphLab for Sage.

(1) As a contributed package. A contributed spkg is, as its name
suggests, a package for Sage that is contributed by users. The Sage
project takes no active role in maintaining a contributed spkg. You
are responsible for its maintenance. However, the Sage project can
offer you hosting space for your contributed spkg. See the contributed
spkg page [4] for a list of contributed spkg's. Note that the header
of that page should be "Sage Contributed Packages", not "Sage
Experimental Packages". The Sage website maintainers (including me)
need to update the Sage website and documentation about this.

(2) As an optional spkg. An optional spkg should pass a minimum set of
hurdles before becoming an optional spkg. For example, it must build
and run on some platforms that Sage builds and runs on. Like a
contributed spkg, you take most of the responsibility in maintaining
an optional spkg. In addition, you need to find at least one Sage
developer who is willing to review your optional spkg before it can be
hosted on the optional spkg page [5] of the Sage website. Furthermore,
someone must be willing to step up to maintain that optional spkg for
at least a few years. The Sage Development Team already has its hands
full with nearly 100 different components that are shipped by default
with Sage. Again, the Sage project can offer hosting space for your
optional spkg.

(3) As a standard spkg. A standard spkg is a package that is shipped
by default with each Sage binary and source distribution. The criteria
for a package to becoming a standard spkg are very strict. Like an
optional spkg, someone must be willing to step up to maintain a
standard spkg for at least a few years. Other hurdles dictate that a
standard spkg must build on some common Linux operating systems, on
Mac OS X, on (Open)Solaris, and Windows (via Cygwin). See this [7]
chapter of the Sage Developer's Guide for more information on criteria
for standard spkg's. See the standard spkg page [6] for a list of
components that are shipped by default with Sage.


> We think we can use GraphLab as a mathematical graph viewer instead of
> matplotlib since It provides more features specifically for rendering
> graphs in two dimensions. We can also create a GraphViewer java applet
> such as Jmol to enable basic edits from a simple GUI or run graphlab
> within sage for applying advanced edits and graph operations in a user-
> friendly GUI.

Note that matplotlib [8] is used for 2D and 3D visualization not just
of plots, histograms, scatterplots, etc., but also for lots of things
amenable to being visualized. As you hinted above, Sage does use
matplotlib for drawing combinatorial graphs. Building and installing
matplotlib on a wide range of platforms including Linux, Mac OS X,
(Open)Solaris, and Windows is almost next to painless in my
experience. Compare that to building and installing JMol on all of the
above platforms. A lot of problems with using JMol from Sage have been
about installing the correct Java libraries, e.g. JRE. But it can be
very tricky for beginning Sage users (not including developers) to
figure out which Java libraries to install. In light of this, I don't
see GraphLab becoming a standard spkg in the near future. But that
doesn't mean I'm against using GraphLab. On the contrary,
visualization and animation in mathematics education is one of my
hobby topics. It's just that a beginning user already has a hard time
figuring out how to use a new piece of software. I personally just
don't want them to go through the extra task of figuring out
dependencies. Of course, I'm open to any argument you might have about
distributing GraphLab as a standard, optional, or contributed spkg.


> What we need to know at the moment is simply where to start from?
> any recommendation is appreciated.

See the Sage Developer's Guide [9], especially the section with the
title "Disseminating Code for Sage".

Please inform us of any question you have regarding the Developer's
Guide or Sage development.


[1] http://graphlab.sharif.ir

[2] http://graphlab.sharif.edu/trac/browser/branches/src/GPL

[3] http://graphlab.sharif.edu/trac/browser/branches/src/LGPL

[4] http://www.sagemath.org/packages/experimental/

[5] http://www.sagemath.org/packages/optional/

[6] http://www.sagemath.org/packages/standard/

[7] http://www.sagemath.org/doc/developer/inclusion.html

[8] http://matplotlib.sourceforge.net

[9] http://www.sagemath.org/doc/developer/

-- 
Regards
Minh Van Nguyen

-- 
To post to this group, send an email to [email protected]
To unsubscribe from this group, send an email to 
[email protected]
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to