Meta:How to contribute

From λLab

What should I (not) write?[edit source]

All kinds of contributions are welcome[edit source]

In particular, the following are excellent ways to contribute:

  • Correct a typo when you spot one.
  • Add references to a page.
  • Add up to an existing page, e.g. by filling an empty section or by adding a section. You can check the list of all pages where some work needs to be done.
  • Start a new page, even if you only write a small definition. (As French Wikipedians say, “an apple is a fruit”.) You can check the list of all wanted pages, i.e. pages that do not exist but are already linked to somewhere.

All “λ-related” topics are welcome[edit source]

Remember from the presentation of the λLab that the general subjects of this wiki are theory of computation, formal logic, their mathematical semantics, and the interplay of all these. Any topic related to any of these items is a priori suited to the λLab. Also, if there's no page yet on [some broad area], it probably only means that nobody here had the time or the skills to make one. Be bold (and ask questions).

On a given subject, you are welcome to write any kind of (interesting) content: write whatever you (or a younger you) would like to have put down somewhere.

However, keep in mind that the material on the λLab should be of common interest:

  • Don't use the λLab for personal notes or drafts. This means that the content should be of some general interest, and that the formatting should make it clear and accessible to others.
  • Don't write non-scientific content. The λLab is not meant for popularising your brand new theory on the origin of the universe.

How to get started?[edit source]

Creating or editing a page[edit source]

To create a page, just go to the URL you would like to create, e.g. https://www.lambda-lab.org/wiki/My new page. Make sure you respect the naming conventions.

To edit a page, go to this page and click on the Edit link below the title. You can also edit a section only by clicking on the [edit] link next to the section title. Notice that there are protected pages, i.e. pages that unauthorised users cannot edit.

If you plan to spend some time modifying a page or a section, you can use Template:Working on page or Template:Working on section to display a warning for other users.

Generalities on MediaWiki[edit source]

The λLab uses MediaWiki (the software running Wikipedia for example).

Templates[edit source]

One of its key features is transclusion, allowing to insert the content of a page (usually a template) into another page. To insert the content of Template:Example into the current page and pass it some arguments, the general syntax is {{Example|argument 1|argument 2|foo=named argument}}. Templates allow to extend MediaWiki's features and to store some parts of frequently used code. The most useful templates are described on the current page.

Categories[edit source]

MediaWiki allows to give categories to pages. Please don't use this feature until a hierarchy of categories is set up.

Typesetting text[edit source]

Text can be formatted using wikicode, the markup used by MediaWiki. See MediaWiki's help pages on markup and on hyperlinks. There are additional features:

  • To put text between quotes, use {{quotes|text}}. This will produce: “text”.

Typesetting math[edit source]

To typeset math, use the templates $ (for inline math) and $$ (for displayed math). For example, {{$|F : \mathbf C \to \mathbf D}} and {{$$|\sum_{i{{=}}1}^{N} a_i \cdot x^i.}} produces: and

Notice the {{=}} producing an = sign (this is needed inside template arguments).

An important remark is that the λLab does not run LaTeX, but some web libraries that use LaTeX-like syntax. Hence all your preferred LaTeX commands are not available. More precisely:

  • Currently, the default behaviour of $ and $$ is that they use MediaWiki's Math extension, which runs MathJax on server-side (and caches the result). See here a list of available commands.
  • We also have KaTeX installed, which is executed client-side (hence being slower) but supports more functions (see the support table). If needed, KaTeX rendering can be enabled by {{$ or $$|some math...|k=1}}.

This behaviour may be modified in the future if we find better options: please do only use the $ and $$ templates, and not MediaWiki's built-in <math> tags!

Definitions, Theorems, etc. (and proofs)[edit source]

Theorems are produced with Template:Theorem box. The syntax is as follows:

{{Theorem box
| type=lemma (or definition, or whatever you want)
| id=a unique identifier (as for a \label{...} in TeX)
| title=... (this line is optional)
| content=...
}}

The result is as follows:

Lemma  (title)

Content...

Proofs are produced with Template:Proof. The syntax is {{Proof|...}}. The template has an optional title argument, to replace the default title of the proof.

To reference to a theorem, use Template:Theorem ref as follows: {{Theorem ref|the identifier of the theorem}}. For example, see  . The template has an optional text argument, to replace the default text of the reference; for example this also links to the lemma above.

Bibliographical references[edit source]

Bibliographical reference should be grouped in a References section at the bottom of each page. This section should consist in one or several list(s) of references:

  • [Reference 1] with a comment if needed.
  • [Reference 2]
  • etc.

Individual references can be typeset in a BibTeX-like syntax using the following templates: Bib Article, Bib Book, Bib InCollection, Bib InProceedings, Bib Misc and Bib Thesis. If you think one of these templates should be improved or a similar template is missing, feel free to request it.

In the body of a page, references can be cited with Template:Cite. A cited reference must be present in the References section.

Special mathematical features[edit source]

Commutative diagrams[edit source]

Commutative diagrams can be produced with {{Diagram|...}}, with KaTeX's diagram syntax.

Proof trees[edit source]

Proof trees can be produced in an ebproof-like syntax thanks to Template:Proof tree. The following example:

{{Proof tree
| hypo \vdash F
| infer 1 \vdash G
| hypo \vdash H
| infer 2 style:(double) label:(R) \vdash G \oplus H 
}}

produces the following result:

$TKATEX$\vdash F$TKATEX$
$TKATEX$\vdash G$TKATEX$
$TKATEX$\vdash H$TKATEX$
$TKATEX$\vdash G \oplus H$TKATEX$
$TKATEX$(R)$TKATEX$

This is an experimental feature: please report bugs and request enhancements!

What good practices should I apply?[edit source]

Naming conventions[edit source]

First, page titles should respect MediaWiki's naming restrictions. In particular there are some forbidden characters, and the title should be at most 255 bytes long.

In addition:

  • Page titles should be singular nouns.
  • Don't capitalise the titles (even for the very first letter)! The only capitals should be in front of proper nouns (Church-Rosser theorem) or mathematical symbols (W-type).
  • You can't use math commands, but Unicode is allowed if used parsimoniously. To translate TeX to Unicode, see for example UnicodeIt.
  • If there are obvious and widespread synonyms of the page title, you can create other pages with redirects (e.g. lambda-calculus could redirect to λ-calculus, or the converse).

Structure of a page[edit source]

The structure of most pages should look like Template:Page structure. To start a new page with this structure, write {{subst:Page structure}} and save the page.

Of course, this is only a suggested template that will not fit some subjects. Feel free to adapt it as much as needed!

Use the talk pages![edit source]

Each page comes with its talk page. You should write on the talk page:

  • If you want to make significant edits to a page, to explain what you are going to do and why.
  • If you disagree with something on a page.
  • If you would like to make an edit but you aren't sure of it.
  • If you have a question about the content of the page.
  • For any other possible reason!

To start discussing:

  1. Go to the talk page (by clicking on the Discussion link below the page title).
  2. Click on the Add topic button in the top right corner.
  3. Don't forget to sign your messages, by adding --~~~~ at the end!

If you need help, do look for it[edit source]

Remember that:

  • All templates will eventually be documented on their Template:Template name page.
  • You can ask for specific help on the talk page of any page.
  • You can ask for anything in the Coffee room.