Template:Isotopes/decay-mode/code/id-list/doc

/code/id-list

{{../code/normalise}} [list T:Isotopes/decay-mode/code]

Status of data definitions for dm1–4, na, hl
  • As of 20 Feb 2023: dm codes: 48× ID + 44× synonymID (incl. 4× na, hl)
  • live: Radioactive decay § List of decay modes
  • data: {{id-list}} · {{property-list}} (overview for article editors)
    ()

codes defined, synonyms edit

  • For properties of codes (as opposed to: definition aka id of a code) see {{../property-list}}. For example symbol, en name, wikilink target, descriptions.
NORMAL-CODE ID lists (normalised ID, synonym ID)
|document-status=: As of 20 Feb 2023: dm codes: 48× ID + 44× synonymID (incl. 4× na, hl)

This is only a _derived_ list. For the actual *defining* list see in-code list in /id-list

NORMAL-CODE ID (internal ID)
|14C =
|20Ne =
|24Ne =
|24NeAND26Ne =
|25Ne =
|25NeAND28Mg =
|26Ne =
|28Mg =
|28MgAND30Mg =
|2b+ =
|2b- =
|2n =
|2p =
|30Mg =
|32Si =
|34Si =
|CD =
|EC =
|IS =
|IT =
|SF =
|alpha =
|b+ =
|b+2p =
|b+3p =
|b+SF =
|b+a =
|b+p =
|b- =
|b-2n =
|b-3n =
|b-SF =
|b-a =
|b-d =
|b-n =
|b-t =
|beta =
|e+=
|epsi =
|epsiANDb+ =
|epsiepsi =
|gamma =
|n =
|p =
|obsstable =
|stable =
|synth =
|trace =
MERGE-SYNONYM 
|24Ne+26Ne   =24NeAND26Ne
|24Neand26Ne =24NeAND26Ne
|25Ne+28Mg   =25NeAND28Mg
|25Neand28Mg =25NeAND28Mg
|28Mg+30Mg   =28MgAND30Mg
|28Mgand30Mg =28MgAND30Mg
|C-14 =14C
|Mg-28 =28Mg
|Mg-28+Mg-30   =28MgAND30Mg
|Mg-28ANDMg-30 =28MgAND30Mg
|Mg-28andMg-30 =28MgAND30Mg
|Mg-30 =30Mg
|Ne-20 =20Ne
|Ne-24 =24Ne
|Ne-24+Ne-26   =24NeAND26Ne
|Ne-24ANDNe-26 =24NeAND26Ne
|Ne-24andNe-26 =24NeAND26Ne
|Ne-25 =25Ne
|Ne-25+Mg-28   =25NeAND28Mg
|Ne-25ANDMg-28 =25NeAND28Mg
|Ne-25andMg-28 =25NeAND28Mg
|Ne-26 =26Ne
|Si-32 =32Si
|Si-34 =34Si
|a =alpha
|b =beta
|b+b+  =2b+
|b+pp  =b+2p
|b+ppp =b+3p
|b-b-  =2b-
|b-nn  =b-2n
|b-nnn =b-3n
|ee =epsiepsi
|epsi+b+ =epsiANDb+
|epsi+e+ =b+
|epsiANDe+ =b+
|epsiandb+ =epsiANDb+
|epsiande+ =b+
|epsilon =epsi
|epsilonepsilon =epsiepsi
|g   =gamma
|nn  =2n
|pp  =2p
|syn =synth
NOT IMPLEMENTED 20Feb2023
|e-    = -- Latn e- not implemented (but used in articles?)
|e+b+  = -- is not a normal-code: would normalised follow for epsi+beta+ but too rare & confusin 
|beta+ = -- 'beta' in a longer string _not_ defined as synonym
{{Isotopes/decay-mode/code/id-list
|normal-code  =
|type         =
|definition   =
}}

create-link edit

{{Isotopes/decay-mode/property/create-link}}
  • |do-link=yes
|property=dm-symbol[[en-link|dm-symbol]]
|property=en-name[[en-link|en-name]]
|property=qid{{Q|qid}}
|property=en-link{{#invoke:redirect and target|report|en-link}}
|is-first-link=yes not tested

Isotopes/decay-mode/code edit

{{Isotopes/decay-mode/code/id-list}} -- actual definitons, synonyms, type
{{Isotopes/decay-mode/code/normalise}}
{{Isotopes/decay-mode/code/has-linkrequest}}
{{Isotopes/decay-mode/code/cleanup}}

self-test edit

dflt: when same, returns blank
{{Isotopes/decay-mode/code/symbol-self-check
|code-1    =
|code-2    =
|same-text =
|diff-text =
|blank2-text=
"report    =y/n
}}
to consider: add non-verified option

verify and test-unverified edit

|code-in, type, test-unchecked-code=
from datatestcases
{{Isotopes/decay-mode/code/normalise |code-in={{{input-fmt|}}} |type={{{type|}}} |test-unchecked-code=true }}
code testing
|property={{yesno|{{{test-unchecked-code|no}}}|yes=test-unchecked-code|no=verify-code}}
Normalise without post-check (=return bad/unk codes too):
|test-unchecked-code=yes. Skips |property=verify-code
|definition=verify-code, test-unchecked-code -- internal self-check
to return code as normalised but unchecked (=return bad codes too):
  • not: Does not work in mainspace (then: always verfy-code).
  • not: by using {{Isotopes/decay-mode/property}} (instead: feed |normal-code= with normalised/unchecked code)
more
|property={{yesno|{{{test-unchecked-code|no}}}|yes=test-unchecked-code|no=verify-code}}
|definition=verify-code, test-unchecked-code -- internal self-check

Normalising decay mode edit

|code-in, type=
returns:
(1) normalised code (alphanumeric only),
(2) merge-synonym (b+b+2b+),
(3) <blank> when code is not recognised.
test unk code
synonym replacement: always
|document-status=yes:
{{Isotopes/decay-mode/code/normalise}}

The template normalises a decay code like β+ into a basic, unambiguous code. That normal code is used to handle the decay mode formatting & properies.

For example, β+ → code b+

In the example:

b+b+

Data retrieved for b+:

symbol: β+
en-name: β+ decay
AZ-changes: (A, Z − 1)
Using basic keyboard characters

The code is in basic keyboard characters. This allows the editor to enter a decay name by plain text characters.

a b e g p n + - 2 3 A-Z a-z 0-9 (SF CD IT Ne Mg Si, 24Ne, stable, syn, ...)

dm code normalisation:

No case conversion uc/lc ("SF" nand "β" recognised, but "sf" and "Β" are not recognised)
Decode entitity names (&amp;beta; &rarr; &beta;)
Remove '%slink$' ('_link' suffix)
Remove all whitespace
Remove &lt;sup> tags (keep content, like '+', '-')
Replace &ndash; (ndash) &minus; (minus) with - (keyboard hyphen)
Replace &alpha; with "a", &beta; &rarr; "b", &epsi; &rarr; "epsi", &gamma; &rarr; "g" 
The whole string is considered

The whole string is considered. So, not recognised is input:

[[alpha|α]] Red XN,
α (? not sure) Red XN,
<span style="background: yellow;">α</span> Red XN
Letter epsilon is coded "epsi". Also, bare letter "e" stands for "ε". Latin letter "e" only occurns in "e+".

Resulting code is in (US) keyboard characters.

The very same code can be enterd by its keyboard letters:

|code-in=β- normalises to b-
|code-in=&beta;<sup>-</sup> normalises to b-
|code-in=&beta; <sup > – </ sup> normalises to b-
|code-in=b- normalises to b-

Also recognised: bare alpha, beta, gamma, epsilon

Alternative codes are normalised, and recognised

Note:

Bare Latin letter "e" is not a code, so bare letter "e" code stands for "ε"
Inversely, "e" only exists with Latin "e", so "e-" is unambiguous.
U+2013 EN DASH (&ndash;)
U+2212 MINUS SIGN (&minus;)
U+002D - HYPHEN-MINUS
U+00AD SOFT HYPHEN (&shy;) (not handled)

half-life (hl) and natural abundance (na) edit

Codes for hl and na are handled by code too:

"stable", "observationally stable", "synthetic" and "trace".

Other values, such as number values like "{{val|1.23|e=7|ul=y}}" (for 1.23×107 y), are not recognised. In Infobox uses, such values can be passed through and shown unedited.

|type=hl, na
Decode entitity names (&amp;beta; &rarr; &beta;)
Conversion uc to lc ("Stable" &rarr; "stable" code)
Remove '%slink$' ('_link' suffix)
Search for code words: "obs", "stable", "syn", "trace"
The rest of the input string is discarded (so: any of these texts in the input will fire as recognised code)

By using these |type=hl, na options, it is prevented that some |dm= input would find "stable" as recognised code (it is not, for dm).


add a new code edit

  1. write formatted, formal symbol (Greek, <sup>...</sup>, ..)
  2. check how it normalised (into keyboard keys only, expected); this is the internal ID
  3. define ID in /dm-id
  4. check in testcases (add new /row)
  5. add dm-format in property-list
  6. more test inputs: plain, formatted forms
  7. add synonyms (=other keyboard ids)
  8. test synonym(s) by bare code, by formatted code input