Logiweb(TM)     Logiweb system pages  
        Explanation of output  

System pages
Site pages

Man pages
Wiki submission
Machine room...

T01: Hello world
T02: Programming
T03: Proving
T04: Googling
T05: Syntax

Hints for administrators
Syntax of references
Road map
Explanation of output


Up. Back to tutorial. Submission form.

The response from pyk

Chances are you got this:

Logiwiki Response
Up. Submission form. Help.

The lines above come from the CGI-script behind the Submission form and allow you to navigate to other places.


The CGI-script calls the pyk compiler. The message above indicates that pyk has started its frontend.

Reverse lookup of http://site/logiweb/wiki/org/name/../../../page/check/latest/vector/page.lgw
Reverse lookup of http://site/logiweb/wiki/org/name/../../../page/base/latest/vector/page.lgw

The messages above indicate that pyk look up the referenced pages and convert them into Logiweb references. Your page will forever reference the pages that resided at the given URLs the split second pyk looked them up. If somebody puts a new version of the pages at the given URL, your page will still reference the old version.

Loading ref nani tani tutu suku kuni ...
Load: loading from cache
Loading ref nani niki seti keki kita ...
Load: loading from cache

If the messages above show up they indicate that pyk loads the pages. If the system administrator has installed an 'enhanced' pyk the lines above do not show up since the check and base pages are preloaded in the enhanced pyk. The 'nani tani tutu suku kuni ...' is the internal Logiweb reference of the check page expressed in mixed endian kana. The message 'loading from cache' indicates that the referenced page has been translated before and appears in the cache.

Frontend: parsing associativity sections

Now pyk reads the PRE- and POSTASSOCIATIVE sections.

Frontend: parsing body

Now pyk reads your BODY section

Frontend: invoking priority rules

This is where e.g. 2 * 3 + 4 * 5 becomes ( 2 * 3 ) + ( 4 * 5 ). From a priority/associativity point of view, your BODY is rather unproblematic.

Frontend: vectorizing

This is where pyk expresses your input as a 'Logiweb vector' (a sequence of bytes). The vector is a standardised, compact way of storing and transmitting Logiweb pages. Pyk forgets your source text once it has the vector. Your page is verified and rendered on basis of the vector, and anyone who get a copy of your vector is able to reproduce your page.

It is not completely true that pyk forgets your source text. During translation, pyk expands the keywords 'Pyk' and 'Priority' into something which represents your header. Your body contains those two keywords, placed strategic places. The effect is that a copy of your header is included in your page. This feature makes it easy for other people to reference your page. When you pressed 'Suggest Header', the suggestion was based on headers included in the check and base pages.


Pyk translates the vector into a 'codex' and an 'expansion'. The 'codex' is a collection of all definitions present on the page and the expansion is the result of macro expanding the body of the page. Pyk may need to translate your page many times to get the meaning right (just like TeX may need to read a file many times to get the references right).

Load: verifying page

Now it is time to cross fingers.

Claim of page 'my page' succeeded.

Your page claims nothing, hence it is correct.

Frontend: checking pyk consistency

Pyk checks that you have included the headers properly. Since you have asked pyk to suggest headers, chances are that the consistency check succeeds. In the unlikely event that you don't want to include headers or want to fiddle with them, you can suppress the consistency check with a 'header=nowarn'. Setting 'header=suggest' is very similar to pressing 'Suggest Header' on the header creation form.


Now Pyk fires up its backend in order to render your page. Pyk has a frontend for reading your pyk source and a backend for rendering your page. It also has a central piece for understanding your page. Messages from the central piece are typically prefixed by 'Load:' as in 'Load: verifying page' above. The ITERATION statements above also come from the central piece.

Rendering page here

Clicking the 'here' link brings you to the location where pyk intends to publish your page.

Backend: writing index

Progress message from the Backend. The Backend writes an index (the html page you get to by clicking 'here').

Backend: writing diagnose

Then the Backend prints the diagnose (saying 'The page is correct' in your case).

Backend: writing reference

The reference of your page is a sequence of about 30 bytes which identifies your page uniquely.

Backend: writing source

The Backend prints a copy of your source text so that other people can admire how clever you are at writing pyk. Later, you may find it handy to read other peoples pyk sources to learn their tricks.

Backend: writing body
Generating TeX face of body
Extracting page.html
Extracting page.bib
Extracting page.tex
bibtex: result=2. Rerun with verbose=2 to see messages or browse .blg file.
Extracting appendix.tex
Extracting chores.tex

The body of your page results in five files: page.html, page.bib, page.tex, appendix.tex, and chores.tex. Your body is constructed using the follwing construct:

page ( X , Y ) bib B main text M appendix A end page

The 'page' construct above writes B, M, and A to page.bib, page.tex, and appendix.tex, respectively. It constructs chores.tex from X and Y, and constructs page.html as a table of contents. Then it runs latex, bibtex, makeindex, latex, and latex on page.tex and runs latex three times on appendix.tex and chores.tex. The error message from bibtex above comes because your main text contains no \bibliography or \cite statements.

Backend: writing bibliography

Then the Backend prints the bibliography of your page. Your page references check and base in that order, so check is reference number one and base is reference number two. In addition, any Logiweb page is 'reference number zero' in its own bibliography. Apart from these 'reference number zero' self references, the Logiweb references form a directed, acyclic graph.

Backend: writing dictionary

The dictionary lists all mathematical constructs introduced on your page. Your page only introduces one construct (the one named 'my page' which you introduced in the PAGE section and which represents your page).

Backend: writing Lisp

Then the Backend prints your page in an external format suited for feeding into other systems. That format contains Lots of Ingeniously Supportive Parentheses.

Backend: writing lgwdir

The lgwdir.html files make html browsing easier in some cases.

Backend: finishing
Claim succeeded

The Backend finishes and Pyk prints its main judgement once again: the page is correct.

Up. Submission form.