Meta:Complexity Zoo Contributor's Guide
From Qwiki
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:
- Genericbox: While a fine template, it is meant to help design other templates.
- Garden-Problem and Entry: It turns out that these templates interact badly with the [edit] links attached to each section's header.
- Any templates in Deprecated Templates or Template Templates.
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:
- Edit Complexity Zoo:J and add your class.
- Edit Template:CZ-J and add a link to your class.
- 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.

