Appendix B. Method Name Syntax
1.
This appendix defines the set of characters that are recognised for use in Method Names. Having a defined character set serves two purposes:
- It rules out certain characters that are hard to distinguish from other characters, which could otherwise lead to the misidentification of Methods. For example, the Unicode character LATIN SMALL LETTER L WITH STROKE (U+0142) could be used in a new Method called Płain Bob Doubles. This could easily be mistaken for Plain Bob Doubles.
- It enables the growing number of software developers who make use of the Methods Library to know which characters their applications should support.
The recognised character set is provided in a text file -- see section 4 below. In addition, the 'Create New Method' feature in CompLib (https://complib.org/) will give a warning if one or more characters used in the name of a new Method are not part of the recognised set.
The Central Council will also consider adding characters to the recognised set on request. Requests can be emailed to methods@cccbr.org.uk.
This appendix also defines a Method Name comparison process to ensure Method Names remain clearly unique. For example, London No. 3 Surprise Royal is an existing Method. The comparison process would prevent London No.3 Surprise Royal, London No 3 Surprise Royal, and London No3 Surprise Royal from being named. This is considered beneficial to reduce the likelihood of misidentification of Methods.
2.
In the following, 'the Unicode standard' refers to the latest version of the standard. See https://www.unicode.org/versions/latest/.
Various attributes of individual characters are provided in the files comprising the Unicode Character Database (UCD). See https://www.unicode.org/Public/UCD/latest/ucd/.
The UCD file https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt contains general category information (field 2, zero-based), normalization information (field 5), and lowercase folding information (field 13). These are used in the sections below.
General category codes used in field 2 above are defined in https://www.unicode.org/reports/tr44/tr44-28.html#General_Category_Values.
Unicode blocks are defined in https://www.unicode.org/Public/UCD/latest/ucd/Blocks.txt.
Charts for the various Unicode blocks are available at https://www.unicode.org/charts/.
Normalization is described in https://www.unicode.org/reports/tr15/tr15-45.html#Norm_Forms.
3.
Method Names are a sequence of from 1 to 120 characters selected from:
- The 62 Unicode characters enumerated in the Unicode standard as being in the Basic Latin block and having a general category of Lu, Ll, or Nd (upper and lower case letters, and digits).
- The 62 Unicode characters enumerated in the Unicode standard as being in the Latin-1 Supplement block and having a general category of Lu or Ll, after excluding the Unicode character named MICRO SIGN.
- The 18 Unicode characters named:SPACEEXCLAMATION MARKQUOTATION MARKDOLLAR SIGNPERCENT SIGNAMPERSANDAPOSTROPHELEFT PARENTHESISRIGHT PARENTHESISCOMMAHYPHEN-MINUSFULL STOPSOLIDUSEQUALS SIGNQUESTION MARKPOUND SIGNEURO SIGNTRADE MARK SIGN
- The 20 Unicode characters named:SUPERSCRIPT ZEROSUPERSCRIPT ONESUPERSCRIPT TWOSUPERSCRIPT THREESUPERSCRIPT FOURSUPERSCRIPT FIVESUPERSCRIPT SIXSUPERSCRIPT SEVENSUPERSCRIPT EIGHTSUPERSCRIPT NINESUBSCRIPT ZEROSUBSCRIPT ONESUBSCRIPT TWOSUBSCRIPT THREESUBSCRIPT FOURSUBSCRIPT FIVESUBSCRIPT SIXSUBSCRIPT SEVENSUBSCRIPT EIGHTSUBSCRIPT NINE
- The 10 Unicode characters named:LATIN CAPITAL LETTER A WITH MACRONLATIN SMALL LETTER A WITH MACRONLATIN CAPITAL LETTER C WITH CARONLATIN SMALL LETTER C WITH CARONLATIN CAPITAL LIGATURE OELATIN SMALL LIGATURE OELATIN CAPITAL LETTER U WITH RING ABOVELATIN SMALL LETTER U WITH RING ABOVELATIN CAPITAL LETTER R WITH LINE BELOWLATIN SMALL LETTER R WITH LINE BELOW
subject to the further constraints that a Method Name:
- Must contain at least one character of Unicode general category Lu, Ll, or Nd; and
- May neither begin nor end with a Space character, nor may it contain within it two consecutive Space characters.
4.
The above 172 recognised characters are listed in a text file here. Information about the format of this file is provided further below.
Method Name comparison: Two Method Names are considered the same if they would be reduced to the same sequence of characters by the following process:
- The sequence of characters is converted to Unicode Normalization Form KD (NFKD, Normalization Form Compatibility Decomposition);
- All characters now appearing in the sequence that are not allowed in a Method Name, as per 3 above, are removed;
- All characters for which the UCD defines a lowercase mapping (per field 13 of UnicodeData.txt -- see 2. above) are converted to that lowercase character;
- The following additional conversions are made:‘ß’ (U+00DF) to the two character sequence ‘ss’‘æ’ (U+00E6) to the two character sequence ‘ae’‘ð’ (U+00F0) to ‘d’‘ø’ (U+00F8) to ‘o’‘þ’ (U+00FE) to the two character sequence ‘th’‘œ’ (U+0153) to the two character sequence ‘oe’
- If the name is now one of ‘white hall’, ‘christ church’, ‘potter hanworth’ or ‘up avon’ then no further changes are made. Otherwise, each character for which the Unicode general category is not either Ll or Nd is removed.
Further explanation: For item e. above, method pairs Whitehall and White Hall, Christchurch and Christ Church, Potter Hanworth and Potterhanworth, and Upavon and Up Avon were all named prior to the implementation of this Appendix B. Spaces are therefore not removed in the method name comparison process for the four method names listed in bullet 5, whereas all other spaces are removed. The latter prevents (e.g.) London No. 3 and London No.3 being used as distinct method names.
6.
Notes:
- The normalization to NFKD followed by deletion of unrecognised characters eliminates diacritics, brings the superscript and subscript numerals to the baseline, and replaces ‘™’ with the two character sequence ‘TM’;
- Punctuation, symbols and spaces are ignored for Method Name comparisons. Thus ‘London No. 3’ is the same as ‘London No3’. Less obviously, ‘E=mc²’ is the same as ‘e & MC₂’. Given how rare, and potentially troublesome, punctuation and symbols are in Method Names, this seems a small price to pay for reducing the likelihood of Method misidentification.
- The text file listing the 172 recognised characters for Method Names (see 4. above) has the following fields:Field 0: Unicode id of the character (hexadecimal)Field 1: Unicode characterField 2: Unicode general category of the characterField 3: Unicode character nameField 4: The character's Unicode blockField 5: Unicode id(s) that result from applying the Method Name comparison process aboveField 6: Unicode character(s) that result from applying the Method Name comparison process aboveField 7: Unicode general category(s) that result from applying the Method Name comparison process aboveIf more than one character results from applying the Method Name comparison process above (e.g. ™ becomes tm), then fields 5 to 7 will contain data for each of these characters, delimited by a space.If the character is one that is eliminated by applying the Method Name comparison process above, then fields 5 to 7 will be empty.
7.
Additional background on Method Names and Method Name syntax is available here in an article written by Don Morrison.