Upload Queues
This page keeps track of the progress of various robots uploading data to the KnotAtlas.
If you look at the source of this page, you'll see a line that says
{{:ScottDataRobot Queue}}
This line 'transcludes' the page ScottDataRobot Queue, showing its contents here. You can edit it to control the ScottDataRobot. You can create new queues by creating a new page in the same format. There's no need to transclude it here, but perhaps you should, so it's easy to see what's going on. To start uploading data in a queue, see the #Instructions section below.
Broken queue items
- "HOMFLYPT", "TorusKnots[20]"
- "HOMFLYPT", "TorusKnots[40]"
- "Kauffman", "TorusKnots[20]"
- "Kauffman", "TorusKnots[40]"
- For some reason the HOMFLYPT and Kauffman polynomials that get uploaded for TorusKnots are broken -- powers of a all replaced with $Failed^-1.
ScottDataRobot Queue
- "Dowker-Thistlethwaite Code", "AllKnots[13]"
- "Dowker-Thistlethwaite Code", "AllKnots[14]"
- "Dowker-Thistlethwaite Code", "AllKnots[15]"
- "Dowker-Thistlethwaite Code", "AllKnots[16]"
- "HOMFLYPT", "AllKnots[13]"
- "HOMFLYPT", "AllKnots[14]"
- "HOMFLYPT", "AllKnots[15]"
- "Rational Khovanov Polynomial", "AllKnots[13, NonAlternating]"
- "Rational Khovanov Polynomial", "AllKnots[14, NonAlternating]"
- "Rational Khovanov Polynomial", "AllKnots[15, NonAlternating]"
- "Kauffman", "AllKnots[13]"
- "Kauffman", "AllKnots[14]"
- "Alexander", "AllKnots[13]"
- "Alexander", "AllKnots[14]"
- "Alexander", "AllKnots[15]"
- "Signature", "AllKnots[13]"
- "Determinant", "AllKnots[13]"
QuantumInvariants Queue
Testing Queue
Completed Work
- "Rational Khovanov Polynomial", "AllKnots[12, NonAlternating]"
- "Kauffman", "AllKnots[12]"
- "HOMFLYPT", "AllKnots[12]"
- "HOMFLYPT", "TorusKnots[17]"
- "QuantumInvariant/G2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/A4/0,1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A3/1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "Alexander", "AllKnots[12]"
- "QuantumInvariant/A1/6", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A1/6", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/A3/1,0,1", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A1/2", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/A1/2", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
- "QuantumInvariant/A1/8", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A3/1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
- "QuantumInvariant/A3/1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A3/0,1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/B2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/A1/1", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
- "QuantumInvariant/A1/3", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/A4/0,1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "Signature", "AllKnots[12]"
- "QuantumInvariant/A2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=5&]"
- "QuantumInvariant/A1/1", "Select[AllKnots[{3,11}],First[BR[#]]<=5&]"
- "QuantumInvariant/A3/1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=5&]"
- "QuantumInvariant/A2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/B2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A2/2,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/D4/0,1,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A1/2", "Select[AllKnots[{3,11}],First[BR[#]]<=5&]"
- "QuantumInvariant/A1/1", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A4/1,0,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "Determinant", "AllKnots[12]"
- "QuantumInvariant/A1/7", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/B2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
- "QuantumInvariant/A1/1", "Select[AllKnots[{3,11}],First[BR[#]]<=6&]"
- "QuantumInvariant/D4/1,0,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
- "QuantumInvariant/A2/1,1", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/D4/1,0,0,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/A1/5", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/G2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A1/1", "Select[AllKnots[{3,11}],First[BR[#]]<=7&]"
- "QuantumInvariant/A3/0,1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/A3/1,0,1", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/A1/1", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/G2/0,1", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A1/5", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/A2/2,0", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A1/4", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/A1/2", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/B2/0,1", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/G2/1,0", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
- "QuantumInvariant/A1/3", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
- "QuantumInvariant/A1/4", "Select[AllKnots[{3,11}],First[BR[#]]<=4&]"
- "QuantumInvariant/A1/4", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A1/3", "Select[AllKnots[{3,11}],First[BR[#]]<=2&]"
- "QuantumInvariant/A2/1,1", "Select[AllKnots[{3,11}],First[BR[#]]<=3&]"
- "QuantumInvariant/A1/2", "Select[AllKnots[{3,11}],First[BR[#]]<=6&]"
Instructions
To upload data from a queue, you can either use an interactive Mathematica session, or a command line script.
Command line
In the KnotTheory/scripts/
folder, you should find a script called upload_script.sh, and upload_script_nice.sh. These both do the same thing, but upload_script_nice runs in the background, with lower priority than anything else, survives after you logout, and writes its output to nohup.out, rather than the tty. Both scripts require three arguments:
./upload_script.sh username password queue
The queue should be the wiki name for the queue you want to use; something like ScottDataRobot_Queue
. You must replace any spaces in the name with underscores. Optionally, you can specify a fourth argument, the path to your math
executable, if it's not already on the path. This path must be terminated with a slash.
For example, to start uploading, I use
./upload_script_nice.sh ScottDataRobot password ScottDataRobot_Queue /scratch/bin2/
(If you're not sure how to kill a process you started this way, using ps and kill, you might just try kill `ps -C MathKernel -o pid=`
. Strongly not recommended if you have another Mathematica session running! :-)
Mathematica session
Suppose you want to use the "YourDataRobot Queue". You'll need to load KnotTheory`, probably with <<KnotTheory`
, and then login, using something like
CreateWikiConnection[ "http://katlas.math.toronto.edu/w/index.php", "YourDataRobot", "password" ]
Now issue the command ProcessKnotAtlasUploadQueue["YourDataRobot Queue"]
. Options Repeat->numberOfRepeats
(defaults to infinity) and Timeout->numberOfSeconds
(defaults to 12 hours) can be used to control how many items will be processed, and the maximum amount of time spent on each.
Format of queue pages
The queue pages should contain one line for each task, in the form
*"Invariant Name", "Mathematica expression that evaluates to a list of knots"
The expression evaluating to a list of knots is subjected to a very strict sanity check before it's evaluated, to protect against malicious code. At the moment, all you can use is AllKnots, AllLink, and Take. In particular, you can't write the presumably quite useful Select[AllKnots[14], BraidIndex[#]<=4&]
.