How to Edit this Manual...: Difference between revisions

From Knot Atlas
Jump to navigationJump to search
No edit summary
Line 14: Line 14:
#They search the text of a manual page for patterns of the form {{Robots Left Delimiter}}''robot instructions''{{Robots Mid Delimiter}}''old robotic response''{{Robots Right Delimiter}}.
#They search the text of a manual page for patterns of the form {{Robots Left Delimiter}}''robot instructions''{{Robots Mid Delimiter}}''old robotic response''{{Robots Right Delimiter}}.
#They study the ''robot instructions'' and compute something.
#They study the ''robot instructions'' and compute something.
#They print the output, i.e. the ''new robotic response'', in place of the ''old robotic response''. Just to be sure that humans don't modify the ''new robotic response'', robots precede it with a short ''human do not enter'' phrase. [[USER:drorbn|Dror]]'s robot's favourite is '''<!--$StringTake[RobotsWarningPhrase[], {5,-4}]$--><!--Robot Land, no human edits to "END"-->Robot Land, no human edits to "END"<!--END-->'''.
#They print the output, i.e. the ''new robotic response'', in place of the ''old robotic response''. Just to be sure that humans don't modify the ''new robotic response'', robots precede it with a short ''human do not enter'' phrase. [[USER:drorbn|Dror]]'s robot's favourite is '''<!--$StringTake[RobotsWarningPhrase[], {5,-4}]$--><!--Robot Land, no human edits to "END"-->Robot Land, no human edits to "END"<!--END-->'''.
#Robots never modify their own instructions or venture to human territories.
#Robots never modify their own instructions or venture to human territories.


Line 40: Line 40:
| {{Robots Left Delimiter}}<tt>$<< KnotTheory`$</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}}
| {{Robots Left Delimiter}}<tt>$<< KnotTheory`$</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}}
| <!--$$<< KnotTheory`$$-->
| <!--$$<< KnotTheory`$$-->
<!--Robot Land, no human edits to "END"-->
<!--Robot Land, no human edits to "END"-->
<tt><font color=blue>In[1]:=</font></tt><code> << KnotTheory`</code>
<tt><font color=blue>In[2]:=</font></tt><code> << KnotTheory`</code>


<tt>Loading KnotTheory` (version of August 19, 2005, 13:11:25)...</tt>
<tt>Loading KnotTheory` (version of August 17, 2005, 14:44:34)...</tt>
<!--END-->
<!--END-->
|- valign=top
|- valign=top
Line 50: Line 50:
| {{Robots Left Delimiter}}<tt>$Jones[Knot[3, 1]][q]$</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}}
| {{Robots Left Delimiter}}<tt>$Jones[Knot[3, 1]][q]$</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}}
| <!--$$Jones[Knot[3, 1]][q]$$-->
| <!--$$Jones[Knot[3, 1]][q]$$-->
<!--Robot Land, no human edits to "END"-->
<!--Robot Land, no human edits to "END"-->
{{InOut1|n=2}}
{{InOut1|n=3}}
<pre style="color: red; border: 0px; padding: 0em"><nowiki>Jones[Knot[3, 1]][q]</nowiki></pre>
<pre style="color: red; border: 0px; padding: 0em"><nowiki>Jones[Knot[3, 1]][q]</nowiki></pre>
{{InOut2|n=2}}<pre style="border: 0px; padding: 0em"><nowiki> -4 -3 1
{{InOut2|n=3}}<pre style="border: 0px; padding: 0em"><nowiki> -4 -3 1
-q + q + -
-q + q + -
q</nowiki></pre>
q</nowiki></pre>
Line 63: Line 63:
| {{Robots Left Delimiter}}<tt>$Jones[Knot[4, 1]][q];$</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}}
| {{Robots Left Delimiter}}<tt>$Jones[Knot[4, 1]][q];$</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}}
| <!--$$Jones[Knot[4, 1]][q];$$-->
| <!--$$Jones[Knot[4, 1]][q];$$-->
<!--Robot Land, no human edits to "END"-->
<!--Robot Land, no human edits to "END"-->
{{In1|n=3}}
{{In1|n=4}}
<pre style="color: red; border: 0px; padding: 0em"><nowiki>Jones[Knot[4, 1]][q];</nowiki></pre>
<pre style="color: red; border: 0px; padding: 0em"><nowiki>Jones[Knot[4, 1]][q];</nowiki></pre>
{{In2}}
{{In2}}
<!--END-->
<!--END-->
|- valign=top
|- valign=top
Line 73: Line 73:
| {{Robots Left Delimiter}}<tt>$Show[DrawPD[Knot[5, 1]]]$</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}}
| {{Robots Left Delimiter}}<tt>$Show[DrawPD[Knot[5, 1]]]$</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}}
| <!--$$Show[DrawPD[Knot[5, 1]]]$$-->
| <!--$$Show[DrawPD[Knot[5, 1]]]$$-->
<!--Robot Land, no human edits to "END"-->
<!--Robot Land, no human edits to "END"-->
{{Graphics1|n=4}}
{{Graphics1|n=5}}
Show[DrawPD[Knot[5, 1]]]
Show[DrawPD[Knot[5, 1]]]
{{Graphics2|n=4|imagename=How_to_Edit_this_Manual..._Out_4.gif}}
{{Graphics2|n=5|imagename=How_to_Edit_this_Manual..._Out_5.gif}}
<!--END-->
<!--END-->
|- valign=top
|- valign=top
Line 83: Line 83:
| {{Robots Left Delimiter}}<tt>?Jones</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}}
| {{Robots Left Delimiter}}<tt>?Jones</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}}
| <!--$$?Jones$$-->
| <!--$$?Jones$$-->
<!--Robot Land, no human edits to "END"-->
<!--Robot Land, no human edits to "END"-->
{{Help1|n=5|s=Jones}}
{{Help1|n=6|s=Jones}}
Jones[L][q] computes the Jones polynomial of a knot or link L as a function of the variable q.
Jones[L][q] computes the Jones polynomial of a knot or link L as a function of the variable q.
{{Help2}}
{{Help2}}
Line 92: Line 92:
| (if ''Symbol''<tt>::about</tt> exists)
| (if ''Symbol''<tt>::about</tt> exists)
| {{Robots Left Delimiter}}<tt>$?Kauffman$</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}}
| {{Robots Left Delimiter}}<tt>$?Kauffman$</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}}
| <!--$$?Kauffman$$-->
| <!--$$?Kauffman$$-->
<!--Robot Land, no human edits to "END"-->
<!--Robot Land, no human edits to "END"-->
{{HelpAndAbout1|n=6|s=Kauffman}}
{{HelpAndAbout1|n=7|s=Kauffman}}
Kauffman[K][a, z] computes the Kauffman polynomial of a knot or link K, in the variables a and z.
Kauffman[K][a, z] computes the Kauffman polynomial of a knot or link K, in the variables a and z.
{{HelpAndAbout2|n=7|s=Kauffman}}
{{HelpAndAbout2|n=#4|s=Kauffman}}
The Kauffman program was written by Scott Morrison.
The Kauffman program was written by Scott Morrison.
{{HelpAndAbout3}}
{{HelpAndAbout3}}
Line 104: Line 104:
| Perform a Mathematica command "in line".
| Perform a Mathematica command "in line".
| There are {{Robots Left Delimiter}}<tt>NumberOfKnots[10]</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}} knots with 10 crossings.
| There are {{Robots Left Delimiter}}<tt>NumberOfKnots[10]</tt>{{Robots Mid Delimiter}} {{Robots Right Delimiter}} knots with 10 crossings.
| There are <!--$NumberOfKnots[10]$--><!--Robot Land, no human edits to "END"-->165<!--END--> knots with 10 crossings.
| There are <!--$NumberOfKnots[10]$--><!--Robot Land, no human edits to "END"-->165<!--END--> knots with 10 crossings.
|}
|}



Revision as of 19:43, 27 August 2005


The Basic Rules

Knot Atlas manual pages are editable and are edited by both humans and robots (dedicated computer programs). Both sides have to be careful not to step into each other's territory. Under the current treaties, robots are responsible for simulated Mathematica output and for certain numerical values that are computed by KnotTheory`. Their territory always lies between <!--$ and <!--END--> tags. Humans are responsible for everything else, including brief ventures into the robot's territories to tell the robots what to do.

Human Edits

To perform a human edit, simply click on the "edit" link at the top of every manual page (or indeed, at the top of almost every other wiki page) and begin editing, saving your work at the end. Be careful not to modify anything in the robots' territory, delimited by <!--$ and <!--END--> tags. If you are only interested in an edit confined to a human territory, you don't need to read any further.

What Robots Do

Before a human can tell a robot what to do, (s)he must understand the simple way in which robots work. Robots do just one simple thing, and only when instructed to it. Here's how they work:

  1. They search the text of a manual page for patterns of the form <!--$robot instructions$-->old robotic response<!--END-->.
  2. They study the robot instructions and compute something.
  3. They print the output, i.e. the new robotic response, in place of the old robotic response. Just to be sure that humans don't modify the new robotic response, robots precede it with a short human do not enter phrase. Dror's robot's favourite is Robot Land, no human edits to "END".
  4. Robots never modify their own instructions or venture to human territories.

Human Ventures into Robot Lands

It is not a good idea for a human to modify a robotic response, as these changes will be overwritten the next time a robot roams the page. (On the other hand, it doesn't break anything in the meantime.) Better, humans can control the robots.

  • To create a new robot territory, put the pattern <!--$robot instructions$--><!--END--> in the desired place. The next time a robot visits it will follow the instructions and place its response between the $--> and <!--END--> tags.
  • To remove an existing robot territory, simply remove everything from the <!--$ tag to the <!--END-->.
  • To modify an existing robot territory, change the content of the robot instructions, between the <!--$ tag and the $--> tag. The next time a robot visits it will follow the new instructions.

Giving Robots Instructions

Currently robots understand the following kinds of instructions:

<!--$instructions$--> Description Example Formatted Output
<!--$$<< KnotTheory`$$--> Simulate In[1] of a KnotTheory` session. <!--$$<< KnotTheory`$$--> <!--END-->

In[2]:= << KnotTheory`

Loading KnotTheory` (version of August 17, 2005, 14:44:34)...

<!--$$Input line$$--> Simulate a Mathematica "In Out" pair. <!--$$Jones[Knot[3, 1]][q]$$--> <!--END-->
In[3]:=
Jones[Knot[3, 1]][q]
Out[3]=
  -4    -3   1
-q   + q   + -
             q
(if output is Null) <!--$$Jones[Knot[4, 1]][q];$$--> <!--END-->
In[4]:=
Jones[Knot[4, 1]][q];
(if graphics) <!--$$Show[DrawPD[Knot[5, 1]]]$$--> <!--END-->
In[5]:=
Show[DrawPD[Knot[5, 1]]]
How to Edit this Manual... Out 5.gif
Out[5]= -Graphics-
<!--$$?Symbol$$--> Simulate a Mathematica help line. <!--$?Jones$--> <!--END-->
In[6]:= ?Jones

Jones[L][q] computes the Jones polynomial of a knot or link L as a function of the variable q.

(if Symbol::about exists) <!--$$?Kauffman$$--> <!--END-->
In[7]:= ?Kauffman

Kauffman[K][a, z] computes the Kauffman polynomial of a knot or link K, in the variables a and z.

In[#4]:= Kauffman::about

The Kauffman program was written by Scott Morrison.

<!--$inlined command$--> Perform a Mathematica command "in line". There are <!--$NumberOfKnots[10]$--> <!--END--> knots with 10 crossings. There are 165 knots with 10 crossings.

Calling for Robotic Action

Play with ManualSpliceRobot.nb.

Teaching Robots New Tricks

At the moment robots do not ignore their instructions even if they don't understand them, so there can be only one robot master teaching robots what to do, or else chaos may ensue. If you want to build a better robot or extend Dror's, do it in your sandbox but don't let it roam on public pages. When the new or extended robot is fully trained, and provided its actions extends Dror's robot, send it to Dror and he will upgrade his robot and make the new robot public.