Meta:Complexity Zoo Contributor's Guide

From Qwiki

Jump to: navigation, search

If you're here, then you must be interested in helping out with the Complexity Zoo. Thanks for your interest!

Contents

Templates

Many tasks with writing and maintaining good Wiki content are, to put it mildly, boring and tedious. Thus, templates were born to help automate some of the worst of the tedium. A liberal use of templates can also contribute to maintaining a consistent look-and-feel throughout the Wiki. Thus, before you jump in and start hacking up the Zoo, I recommend that you look at some existing pages to see how they use templates.

Of particular interest will be the following templates:

  • Zcls: Makes linking to complexity classes fun again.
  • Zcite: Makes citing references fun for the first time.

Among those templates that you should never use on a page:


Writing New Templates

If you decide to implement a new template, keep in mind the following:

  • Is the new template useful?
  • Has it been done before? (Hint: Check all of the Template Categories.)
  • Write good documentation, using Renders-As and following the formatting of other templates, such as CD-Menu.
  • Add your new template to the right Template Categories. If it's for use in other templates, make sure it's in Template Templates, for instance.
  • The installed ParserFunctions extension can automate a lot of tasks. Don't neglect it!

Pitfalls With Common Tasks

Adding Complexity Classes

Adding new complexity classes has become frustratingly difficult due to the need to split the Zoo into smaller pages to work around limitations in MediaWiki. As such, in order to add a class (we'll assume that its starts with a J-- the same idea holds for any other letter or for the word Symbols), you have to do three things:

  1. Edit Complexity Zoo:J and add your class.
  2. Edit Template:CZ-J and add a link to your class.
  3. Edit Complexity Zoo and increment the count at the top of the page.

Adding Glossary Terms

If you find yourself adding a new term to the Zoo Glossary, use the Term template! It will keep you from forgetting to name the anchor for your new term. That way, if someone else needs to link to your term later, they can!

Adding References

If you're adding a reference to the bibliography, use one of the Category:Reference Templates. It will keep you from forgetting any number of common pitfalls.

FAQ

What makes a class worth adding to the Zoo?

As the Zookeeper mentions in the Introductory Essay, the Zoo takes a somewhat democratic approach to computational complexity. If something non-trivial has been proved about a class, then mention it! There's some very obscure classes currently in the Zoo (the Tour Guide's favorite example of obscurity being XOR-MIP*[2,1]), but they're all important, in that they all help us to understand something about the nature of computation. On the other hand, you can always define some strange and esoteric class. The key is that you have to be able to say something about it.

Where can I find more classes?

Try the ECCC or the Proceedings of the IEEE Conference on Computational Complexity.

Personal tools