Using natural language inside Sage
By defining new Sage interfaces we can command the Sage shell and notebook server using natural language.
Installation
Move to the sage directory and build sage-shell:
cd mgl/sage
make sage-shell
The first time you build it, you may run into a warning as in the installation section of the front page, or:
Please add nlgf components to the interfaces list in /usr/local/sage-4.7.2/devel/sage/sage/interfaces/all.py
We must inform Sage that there are some new interfaces for it: We open interfaces/all.py
(Notice that your actual path might be different), go to the end of the file and add something like this:
from nlgf import english, spanish
interfaces.extend(['english', 'spanish'])
The first line asks the system to load the interfaces for commanding Sage using English and Spanish. The next line add these to the list of available interfaces.
Now retry building:
make sage-shell
At the time of writing, the module nlgf
provides catalan
, english
, german
, and spanish
interfaces.
Sage shell with command auto-completion
In some systems you can have the commands Sage shell auto-completed by pressing the tab key. This is experimental and you have to make the installation completely by hand.
First you have to build the Python bindings for GF which, for the moment, only work in Linux. You'll find there a shared library called gf.so
. Copy or move it into one of the directories that Python scans when resolving imports. Note that it may be the case that the Python instance run by Sage be different of the one your machine runs by default; To be sure, do as follows:
sage -python -c 'import sys; print sys.path'
it will list all the directories that Sage/python scans.
You'll know it's all right when:
sage -python -c 'import gf'
exits with no complain: The next time you enter into the Sage shell you'll have autocompletion for the GF interfaces.
Usage
Shell interface
Start a Sage shell:
sage
and switch to one of the defined natural language interfaces:
sage: %english
will reply with:
--> Switching to Gf <--
If you didn't install autocompletion (which is the usual case, auto-completion being experimental), a warning will appear:
No autocompletion available
Now you're ready to issue sage commands in English:
english: compute the summation of x when x ranges from 1 to 100.
5050
english: add 3 to it.
5053
english: let x be the factorial of 6.
720
english: let y be the factorial of 5.
120
english: compute the greatest common divisor of x and y.
120
english: compute the least common multiple of x and y.
720
Go back to the standard interface by typing ctrl+D or typing quit
.
Notebook interface
Sage has a notebook interface that gives a more flexible way to interact with it. To use it, start the shell as above and then:
sage: notebook(secure=true, interface='')
The notebook files are stored in: sage_notebook.sagenb
****************************************************
* *
* Open your web browser to https://localhost:8000 *
* *
****************************************************
There is an admin account. If you do not remember the password,
quit the notebook and type notebook(reset=True).
2012-02-13 12:48:19+0100 [-] Log opened.
...
In some systems a browser will open simultaneously. Now you can use Sage from the browser.
Click on New Worksheet. You'll be asked to rename the worksheet (this is optional). A single cell will be ready for your input. Write your command and press evaluate. Notice that a cell can contain more than one command, separated by newlines.
Start a new cell by writing:
%english
and add one or more new lines with commands in English.
Attachment | Size |
---|---|
sage-notebook.jpg | 95.69 KB |
- Printer-friendly version
- Login to post comments
- Slides
What links here
No backlinks found.