Dear Sage developers,

At the AIM/ICMS workshop ``Online databases: from L-functions to
combinatorics'' last week, Jason Bandlow and myself had fun writing a
prototype for a simple LMFDB-style web application allowing to explore
Sage. There it is!

Sage Explorer
-------------

Sage Explorer is a tool for exploring Sage objects and connections
between them. It displays a Sage object, some relevant information
about this object, and links to related objects (those that can be
obtained using a method of the object).  One central feature of the
tool is to make it easy to configure which piece of information is
relevant, typically depending on the semantic of the object.

          https://github.com/jbandlow/sage-explorer
          https://explore.sagemath.org (some day)

You can find some screen shots of Sage Explorer in action at:

        https://github.com/jbandlow/sage-explorer/wiki/Screenshots

How to install and run it
-------------------------

You need Sage installed (http://sagemath.org). Then, in any directory
of your choice, run the following shell commands:

        git clone https://github.com/jbandlow/sage-explorer.git
        cd sage-explorer
        sage -python sage_explorer

and connect to the URL that is mentioned (typically http://127.0.0.1:5000/)

WARNING: AT THIS POINT NO STEP HAS BEEN TAKEN TOWARD SECURITY

By choosing appropriate url's, the user can trivially run any sage
command -- and in particular any shell command -- on the server under
the web server's uid. Use locally or at your own risks.

Motivation for this prototype
-----------------------------

The purpose was to evaluate whether such a tool could be written as a
thin view layer above Sage, and how much the semantic information
available in Sage was useful and sufficient for that purpose.

Implementation
--------------

Sage Explorer is currently implemented as a standalone flask
web-site. It indeed a thin layer: 300 lines of infrastructure code,
150 lines of html jinja templates, 60 lines of config. As desired, the
infrastructure is completely generic and allows for exploring any Sage
object. The object-dependent configuration (what are the important
properties that should be displayed) is quite concise, and does not
depend on the rendering detail (no html). It actually could be used as
is to build an heavy weight application instead of a web interface.
The only prerequisite for a contributer to expand it is to know the
mathematics of the object to be displayed and how to call the
appropriate Sage commands to compute its properties.

Future
------

The two authors are unlikely to lead further development of this tool,
since they don't have a strong need for it themselves. If you think
this is useful, patches and take overs are more than welcome! We have
set up developers mailing list:

        sage-explorer-...@googlegroups.com

The most urgent feature would be to use, say, the single-cell server
as backend to handle the security and then run it publicly, typically
on http://explore.sagemath.org/.

For more, see the TODO file in the git repository.

Enjoy your exploration!
                                Nicolas
--
Nicolas M. ThiƩry "Isil" <nthi...@users.sf.net>
http://Nicolas.Thiery.name/

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to