T01: Hello world
Hints for administrators
Syntax of references
Explanation of output
Back to tutorial.
From the main menu you can get to the following places:
- The thing you want your readers to see.
The unique reference of your page.
The reference consists of about 30 bytes.
Once your page is submitted, it may be mirrorred around the world,
and all the mirror images have the same reference as your original.
When someone tries to look up your page on basis of the reference,
they may get to your original or to one of the mirrors.
Actually, there is no difference between the original and the
mirrors. As long as at least one copy of your page remains on Logiweb
somewhere, it can be looked up on basis of the reference.
Note that if you regret submitting something, there is no way you can
call it back.
Writing on Logiweb is like publishing.
But your marvelous 'Hello World' page is not really published:
it was sent to pyk with level=body which tells pyk that you are still
working on your page.
The vector of a page is a sequence of bytes in a well defined, compact
format in which pages are stored and transmitted inside Logiweb.
Pyk did not generate a vector because you said 'level=body' when
sending your pyk source to pyk.
A page is not really published on Logiweb before the vector is
The bibliography is the list of all Logiweb pages you reference
from your page.
You referenced no other pages, so the bibliography only contains
a special entry:
All Logiweb pages has a reference number zero which references
the page itself. The other references are numbered from one and
up and reference other pages. The proper references (those with
numbers one and up) form a directed, acyclic graph.
Each Logiweb page can introduce any number of new constructs.
As an example, a page which we shall look at shortly introduces
a construct named x+y which denotes addition.
Each introduced construct has an 'index' which is a natural number.
Introduced constructs are typically numbered from zero and up,
and constructs introduced in different pages may have the same index.
To identify a Logiweb construct uniquely one needs both the index
of the construct and the reference of the 'home page' of the construct,
i.e. the page which introduces the construct.
Each introduced construct has an 'arity'.
As an example, the x+y construct considered later has an arity of 2.
This means that the x+y construct always takes exactly two arguments.
The dictionary of each page lists all constructs introduced on the
page together with their arities.
As a service to human readers, the rendering in the dictionary
window list not only indices and arities, but also the names of
Every page on Logiweb introduces at least one construct:
the page construct.
The page construct always has index 0 and arity 0.
The page construct is used for many, special purposes.
As any other Logiweb page, your Hello World page has a page construct.
Your source text does not assign a name to the page construct and, hence,
pyk has invented a peculair 'nani ...:0' name for it.
The zero after the colon is the index of the page construct.
The nonsense words before the colon represent the first few bytes
of the reference of your page.
As soon as you learn to attach names to constructs, your pages will
get more reasonable names that 'nani ...'.
The Lisp window displays the bibliography, dictionary, and body of
your page in that order in a format suited for interfacing to other
The bibliography is a list of big numbers where each number encodes
The dictionary is a so-called 'association list' which maps construct
indices to arities.
The body is a tree structure which represents the body of your page.
The codex contains all definitions found on your page
(none, in the case of the the Hello World page).
When a pyk source is sent to pyk with an option of level=body,
only the reference, diagnose, body, bibliography, dictionary,
Lisp, and source
windows are rendered. That is why you see an asterisk next to the
vector, codex, expansion, and header links.
The macro expanded version of your page.
Some information about priority and associativity of introduced
constructs. Authors who want to import constructs from your page
may want to copy/paste from the header window.
This is either the text 'The page is correct' or a link named
'Diagnose'. If the page is in error, click the link to see what
The original pyk source from which the page was generated.
As mentioned previously, the pyk compiler forgets the source once
it has generated the vector. Among other, this is why your page
ended up being named 'nani ...': the pyk compiler forgot that it
was named 'Hello World'.
But authors who want to learn the tricks you use when writing
pyk may benefit from having the original pyk source.
Furthermore, the pyk source may contain commentary text.
To save time, one can tell pyk to generate only some of the windows
above using the 'level' parameter as follows:
- Verify the page but do not generate any of the windows above.
- Generate diagnose, reference, and source.
- Generate the above plus body, bibliography, dictionary, and Lisp.
- Generate the above plus codex, expansion, and header.
- Generate the above plus the vector in human readable format.
Generate the above plus the actual, machine readable vector
and notify the local Logiweb server.
A Logiweb page is not really published on Logiweb before one runs pyk with
level=submit. The other levels are for generating draft versions which
other users are unable to reference.
The windows above have the following links:
- The body of the page expressed in Pdf (if available).
- A table of contents in html (if available).
- The body of the page reverse engineered back to pyk source
A directory containing all the files used for generating the Pdf.
Inspect the page.log and page.tex files if you get TeX error
messages from pyk.
- Some online information about the body window.
- Hex bytes
The bytes of the reference in network byte order.
Each byte is expressed in hexadecimal.
Each byte is written with the most significant digit first.
- Decimal bytes
- As above, but in decimal.
- Kana bytes
As above, but expressedd base 4 with a special encoding
useful for entering references through a microphone
(for most references, the first two or three words are enough
in a given context).
- Base 16 ref
- An encoding where each character represents four bits.
- Base 32 ref
- An encoding where each character represents five bits.
- Base 64 ref
- An encoding where each character represents six bits.
- Decimal number
The reference expressed as a natural number.
This natural number is the 'reference of the page' internally
in Logiweb when Logiweb works with the page.
The 'hex bytes' representation above, however, is more faithful
to the way references are stored on disk and transmitted over a
- Hex number
- Same as above, but expressed base 16.
Online explanations of the formats, including the order of byte and
digits in each representation.
- The names of referenced pages expressed in Pdf (if available).
- The names of referenced pages expressed in pyk (if available).
- The files used for generating the Pdf window.
- Hex bytes etc.
- Same representations as used for references.
- Pdf, Pyk, Tex
- Same as Pdf, Pyk, and Tex in bibliographies
- Actual source as plain text
The actual pyk source after processing of include directives
and after translation to Unicode/UTF-8.
- Actual source as html.
- Same as above, but translated to html.
- Reverse engineered body.
- Link to 'pyk' in the 'body' window.