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

From English Wikipedia @ Freddythechick
/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

  • 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

<syntaxhighlight lang="wikitext">

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 =

</syntaxhighlight>

<syntaxhighlight lang="wikitext"> 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

</syntaxhighlight>

<syntaxhighlight lang="wikitext"> 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

</syntaxhighlight>

<syntaxhighlight lang="wikitext">

</syntaxhighlight>

create-link

{{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

{{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

dflt: when same, returns blank

<syntaxhighlight lang="wikitext">

</syntaxhighlight>

to consider: add non-verified option

verify and test-unverified

|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

|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 <syntaxhighlight lang="text" class="" style="" inline="1">b+</syntaxhighlight>

In the example:

b+ → <syntaxhighlight lang="text" class="" style="" inline="1">b+</syntaxhighlight>

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.

<syntaxhighlight lang="text" class="" style="" inline="1">a b e g p n + - 2 3 A-Z a-z 0-9</syntaxhighlight> (SF CD IT Ne Mg Si, 24Ne, stable, syn, ...)

dm code normalisation: <syntaxhighlight lang="wikitext"> No case conversion uc/lc ("SF" nand "β" recognised, but "sf" and "Β" are not recognised) Decode entitity names (&beta; → β) Remove '%slink$' ('_link' suffix) Remove all whitespace Remove <sup> tags (keep content, like '+', '-') Replace – (ndash) − (minus) with - (keyboard hyphen) Replace α with "a", β → "b", ε → "epsi", γ → "g" The whole string is considered </syntaxhighlight> The whole string is considered. So, not recognised is input:

<syntaxhighlight lang="text" class="" style="" inline="1">[[alpha|α]]</syntaxhighlight> Red XN,
<syntaxhighlight lang="text" class="" style="" inline="1">α (? not sure)</syntaxhighlight> Red XN,
<syntaxhighlight lang="text" class="" style="" inline="1">α</syntaxhighlight> 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 <syntaxhighlight lang="text" class="" style="" inline="1">b-</syntaxhighlight>
|code-in=&beta;<sup>-</sup> normalises to <syntaxhighlight lang="text" class="" style="" inline="1">b-</syntaxhighlight>
|code-in=&beta; <sup > – </ sup> normalises to <syntaxhighlight lang="text" class="" style="" inline="1">b-</syntaxhighlight>
|code-in=b- normalises to <syntaxhighlight lang="text" class="" style="" inline="1">b-</syntaxhighlight>

Also recognised: bare <syntaxhighlight lang="text" class="" style="" inline="1">alpha, beta, gamma, epsilon</syntaxhighlight>

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)

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

<syntaxhighlight lang="wikitext"> Decode entitity names (&beta; → β) Conversion uc to lc ("Stable" → "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) </syntaxhighlight> 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

  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