Jump to content

Wikifunctions:Naming conventions

From Wikifunctions

The page aims to sum up some conventions related to how are objects named at Wikifunctions. Since it's still a young project, there are not many guidelines defined yet.

Capitalization

Labels of objects should be written as if they were an ordinary phrase. Use of Title Case is discouraged (e.g. "Calculate A Distance Between Earth And Sun On a Given Date"). Instead, type something like calculate a distance between Earth and Sun on a given date. Capitalize only proper nouns and other words as required by the desired language grammar rules (e.g. nouns in German, or proper nouns like weekday names in English) or conventions (in English use "RSA" and not "rsa").

By convention, names of objects that describe data types, should have their first letter capitalized (e.g. Object (Z1) or Function (Z8)).

Search characters

The search function uses a few characters as modifiers, so avoid these at the start of a word. These characters are: ~ * \? - " !. Note that “?” on its own (rather than “\?”) is not a modifier. It is, however, a “greyspace” character. Other “greyspace” characters are ~ ! @ # $ % ^ & ( ) _ + - = { } | [ ] \ : " ; ' < > ? , . /. Search treats these (singly or in combination) as part of the word boundary. This is not generally a problem but if they are likely to be significant in searches, you should avoid them at the start or end of a word (or between words), unless necessary (e.g. German noun, -s declension (Z11729)). See Help:CirrusSearch for details of how to search for text containing any of these characters.

Implementation names

When creating an Implementation, please mention the language you used in its name (Python/JavaScript/Composition). If there are more than one implementation in the same language, it's recommended to give a little detail in the title of what makes this implementation different. For example, naming the algorithm name (if one exists).

Test cases

Labels of a test case should provide some clue about what you are checking there. It doesn't have to include values for every input and output, but should at least specify a domain that you're checking. For instance, you might want to say that this test checks the behavior of a string function when it's given letters from the Cyrillic alphabet, or of a mathematical function when a fraction or complex number is passed.

If the test case is related to a string function and you include a string argument in the test case name, please surround the argument in quotes or mark it in some other way so it will be clear what the value is. It's especially helpful if the value has significant whitespace at the beginning or end (e.g., when testing a text-trimming function).

Multi-lingual labels

Tracked in Phabricator:
Task T359663

Labels in multiple languages (using the mul language code) can be used to specify the label in a way that doesn't involve words, for example as a mathematical expression. See true negated is false (Z10512) for an example. At the moment of writing, the software doesn't use these labels as a fallback though.