User:Ian Clark/FormalPageNames
A Formal Page-Naming System
Here is a formal page naming system for Vocabulary, aka NuVoc, based on literal names for the ascii chars in a J primitive word. Template:Admon/caution
Adobe publish a list of ascii character names in the PDF Language Reference Manual, aka The Red Book. I don't like these names a lot, but at least they have the merit of not being my arbitrary choice. They can easily be changed.
The only adaptation I've made to the naming scheme is to use the names: acap, bcap, ... for A, B, ... In the Adobe scheme, the name of the letter A is A. But this leads to page names which are ambiguous in case sensitive environments, e.g. "aperiod" for (a.) and "Aperiod" for (A.). My amendment assigns all lowercase names, e.g. 'acapperiod' for (A.).
This script creates these nouns:
PRI NB. a boxed list of all the J primitives CHARNAME_ADOBE NB. the Red Book list of ascii character names CHARNAME_HOVEL NB. the Red Book with "ascii" omitted and "period"-->"dot" CHARNAME_CAVE NB. the standard proposed by Skip Cave (see bottom of page) CHARNAME NB. the list actually selected for use PRIMTABLE NB. the table of wiki page names for each J primitive
plus a verb show which creates and shows PRIMTABLE for a choice of proposed CHARNAME.
The script: charname.ijs is easily modified to supply additional CHARNAME_xxx tables.
Here's the three proposals spelt-out...
show CHARNAME_ADOBE = equal =. equalperiod =: equalcolon < less <. lessperiod <: lesscolon > greater >. greaterperiod >: greatercolon _ underscore _. underscoreperiod _: underscorecolon + plus +. plusperiod +: pluscolon * asterisk *. asteriskperiod *: asteriskcolon - minus -. minusperiod -: minuscolon % percent %. percentperiod %: percentcolon ^ asciicircum ^. asciicircumperiod ^: asciicircumcolon $ dollar $. dollarperiod $: dollarcolon ~ asciitilde ~. asciitildeperiod ~: asciitildecolon | bar |. barperiod |: barcolon . period .. periodperiod .: periodcolon : colon :. colonperiod :: coloncolon , comma ,. commaperiod ,: commacolon ; semicolon ;. semicolonperiod ;: semicoloncolon # numbersign #. numbersignperiod #: numbersigncolon ! exclam !. exclamperiod !: exclamcolon / slash /. slashperiod /: slashcolon \ backslash \. backslashperiod \: backslashcolon [ bracketleft [: bracketleftcolon ] bracketright { braceleft {. braceleftperiod {: braceleftcolon {:: braceleftcoloncolon } braceright }. bracerightperiod }: bracerightcolon " quotedbl ". quotedblperiod ": quotedblcolon ` grave `: gravecolon @ at @. atperiod @: atcolon & ampersand &. ampersandperiod &: ampersandcolon &.: ampersandperiodcolon ? question ?. questionperiod a. aperiod a: acolon A. acapperiod b. bperiod C. ccapperiod d. dperiod D. dcapperiod D: dcapcolon e. eperiod E. ecapperiod f. fperiod H. hcapperiod i. iperiod i: icolon I. icapperiod j. jperiod L. lcapperiod L: lcapcolon M. mcapperiod NB. ncapbcapperiod o. operiod p. pperiod p.. pperiodperiod p: pcolon q: qcolon r. rperiod s: scolon S: scapcolon t. tperiod t: tcolon T. tcapperiod u: ucolon x: xcolon _9: underscoreninecolon _8: underscoreeightcolon _7: underscoresevencolon _6: underscoresixcolon _5: underscorefivecolon _4: underscorefourcolon _3: underscorethreecolon _2: underscoretwocolon _1: underscoreonecolon 9: ninecolon 8: eightcolon 7: sevencolon 6: sixcolon 5: fivecolon 4: fourcolon 3: threecolon 2: twocolon 1: onecolon 0: zerocolon
show CHARNAME_HOVEL = equal =. equaldot =: equalcolon < less <. lessdot <: lesscolon > greater >. greaterdot >: greatercolon _ underscore _. underscoredot _: underscorecolon + plus +. plusdot +: pluscolon * asterisk *. asteriskdot *: asteriskcolon - minus -. minusdot -: minuscolon % percent %. percentdot %: percentcolon ^ circum ^. circumdot ^: circumcolon $ dollar $. dollardot $: dollarcolon ~ tilde ~. tildedot ~: tildecolon | bar |. bardot |: barcolon . dot .. dotdot .: dotcolon : colon :. colondot :: coloncolon , comma ,. commadot ,: commacolon ; semicolon ;. semicolondot ;: semicoloncolon # numbersign #. numbersigndot #: numbersigncolon ! exclam !. exclamdot !: exclamcolon / slash /. slashdot /: slashcolon \ backslash \. backslashdot \: backslashcolon [ bracketleft [: bracketleftcolon ] bracketright { braceleft {. braceleftdot {: braceleftcolon {:: braceleftcoloncolon } braceright }. bracerightdot }: bracerightcolon " quotedbl ". quotedbldot ": quotedblcolon ` grave `: gravecolon @ at @. atdot @: atcolon & ampersand &. ampersanddot &: ampersandcolon &.: ampersanddotcolon ? question ?. questiondot a. adot a: acolon A. acapdot b. bdot C. ccapdot d. ddot D. dcapdot D: dcapcolon e. edot E. ecapdot f. fdot H. hcapdot i. idot i: icolon I. icapdot j. jdot L. lcapdot L: lcapcolon M. mcapdot NB. ncapbcapdot o. odot p. pdot p.. pdotdot p: pcolon q: qcolon r. rdot s: scolon S: scapcolon t. tdot t: tcolon T. tcapdot u: ucolon x: xcolon _9: underscoreninecolon _8: underscoreeightcolon _7: underscoresevencolon _6: underscoresixcolon _5: underscorefivecolon _4: underscorefourcolon _3: underscorethreecolon _2: underscoretwocolon _1: underscoreonecolon 9: ninecolon 8: eightcolon 7: sevencolon 6: sixcolon 5: fivecolon 4: fourcolon 3: threecolon 2: twocolon 1: onecolon 0: zerocolon
SkipCave
I think that the proposed charset.ijs looks pretty good, except I would shorten the following names:
35 # numbersign -> number or numsign, 38 & ampersand -> amp, 39 ' quotesingle -> quotsing, 42 * asterisk -> star, 46 . period -> dot, 94 ^ asciicircum -> hat, 95 _ underscore -> under, 126 ~ asciitilde -> tilde.
-- SkipCave 2010-02-11 022:04:25
The result: -- Ian Clark <<DateTime(2010-02-12T05:59:42Z)>>
show CHARNAME_CAVE = equal =. equaldot =: equalcolon < less <. lessdot <: lesscolon > greater >. greaterdot >: greatercolon _ under _. underdot _: undercolon + plus +. plusdot +: pluscolon * star *. stardot *: starcolon - minus -. minusdot -: minuscolon % percent %. percentdot %: percentcolon ^ hat ^. hatdot ^: hatcolon $ dollar $. dollardot $: dollarcolon ~ tilde ~. tildedot ~: tildecolon | bar |. bardot |: barcolon . dot .. dotdot .: dotcolon : colon :. colondot :: coloncolon , comma ,. commadot ,: commacolon ; semicolon ;. semicolondot ;: semicoloncolon # number #. numberdot #: numbercolon ! exclam !. exclamdot !: exclamcolon / slash /. slashdot /: slashcolon \ backslash \. backslashdot \: backslashcolon [ bracketleft [: bracketleftcolon ] bracketright { braceleft {. braceleftdot {: braceleftcolon {:: braceleftcoloncolon } braceright }. bracerightdot }: bracerightcolon " quotdbl ". quotdbldot ": quotdblcolon ` grave `: gravecolon @ at @. atdot @: atcolon & amp &. ampdot &: ampcolon &.: ampdotcolon ? question ?. questiondot a. adot a: acolon A. acapdot b. bdot C. ccapdot d. ddot D. dcapdot D: dcapcolon e. edot E. ecapdot f. fdot H. hcapdot i. idot i: icolon I. icapdot j. jdot L. lcapdot L: lcapcolon M. mcapdot NB. ncapbcapdot o. odot p. pdot p.. pdotdot p: pcolon q: qcolon r. rdot s: scolon S: scapcolon t. tdot t: tcolon T. tcapdot u: ucolon x: xcolon _9: underninecolon _8: undereightcolon _7: undersevencolon _6: undersixcolon _5: underfivecolon _4: underfourcolon _3: underthreecolon _2: undertwocolon _1: underonecolon 9: ninecolon 8: eightcolon 7: sevencolon 6: sixcolon 5: fivecolon 4: fourcolon 3: threecolon 2: twocolon 1: onecolon 0: zerocolon
Another proposal, for CamelCase names. -- Ian Clark <<DateTime(2010-02-12T09:12:38Z)>>
These names have been produced systematically using the script charname.ijs (except for Dot-->DotOnly, Comma-->CommaOnly, Colon-->ColonOnly). They would be created as top-level pages.
Advantages: Their bare names would automatically hyperlink. They could be seen over the web simply by e.g. [1]
Notice they all check-out below as unused but valid page names.
= EqualTo =. EqualToDot =: EqualToColon < LessThan <. LessThanDot <: LessThanColon > GreaterThan >. GreaterThanDot >: GreaterThanColon _ UnderScore _. UnderScoreDot _: UnderScoreColon + PlusSign +. PlusSignDot +: PlusSignColon
- StarSign
- . StarSignDot
- StarSignColon
- MinusSign -. MinusSignDot -: MinusSignColon % PercentSign %. PercentSignDot %: PercentSignColon ^ HatSign ^. HatSignDot ^: HatSignColon $ DollarSign $. DollarSignDot $: DollarSignColon ~ AsciiTilde ~. AsciiTildeDot ~: AsciiTildeColon | AsciiBar |. AsciiBarDot |: AsciiBarColon . DotOnly .. DotDot .: DotColon
- ColonOnly
- . ColonDot
- ColonColon
, CommaOnly ,. CommaDot ,: CommaColon
- SemiColon
- . SemiColonDot
- SemiColonColon
! ExclamationMark !. ExclamationMarkDot !: ExclamationMarkColon / FwdSlash /. FwdSlashDot /: FwdSlashColon \ BackSlash \. BackSlashDot \: BackSlashColon [ BracketLeft [| BracketLeftColon ]] BracketRight { BraceLeft {. BraceLeftDot {: BraceLeftColon {:: BraceLeftColonColon } BraceRight }. BraceRightDot }: BraceRightColon " QuoteDbl ". QuoteDblDot ": QuoteDblColon GraveSign : GraveSignColon @ AtSign @. AtSignDot @: AtSignColon & AmpSign &. AmpSignDot &: AmpSignColon &.: AmpSignDotColon ? QuestionMark ?. QuestionMarkDot a. AzLowDot a: AzLowColon A. AzCapDot b. BzLowDot C. CzCapDot d. DzLowDot D. DzCapDot D: DzCapColon e. EzLowDot E. EzCapDot f. FzLowDot H. HzCapDot i. IzLowDot i: IzLowColon I. IzCapDot j. JzLowDot L. LzCapDot L: LzCapColon M. MzCapDot NB. NzCapBzCapDot o. OzLowDot p. PzLowDot p.. PzLowDotDot p: PzLowColon q: QzLowColon r. RzLowDot s: SzLowColon S: SzCapColon t. TzLowDot t: TzLowColon T. TzCapDot u: UzLowColon x: XzLowColon _9: UnderScoreNineColon _8: UnderScoreEightColon _7: UnderScoreSevenColon _6: UnderScoreSixColon _5: UnderScoreFiveColon _4: UnderScoreFourColon _3: UnderScoreThreeColon _2: UnderScoreTwoColon _1: UnderScoreOneColon 9: NineColon 8: EightColon 7: SevenColon 6: SixColon 5: FiveColon 4: FourColon 3: ThreeColon 2: TwoColon 1: OneColon 0: ZeroColon
The final scheme chosen: -- Ian Clark <<DateTime(2010-02-13T13:32:45Z)>>
show CHARNAME_FINAL = eq =. eqdot =: eqco < lt <. ltdot <: ltco > gt >. gtdot >: gtco _ under _. underdot _: underco + plus +. plusdot +: plusco * star *. stardot *: starco - minus -. minusdot -: minusco % percent %. percentdot %: percentco ^ hat ^. hatdot ^: hatco $ dollar $. dollardot $: dollarco ~ tilde ~. tildedot ~: tildeco | bar |. bardot |: barco . dot .. dotdot .: dotco : co :. codot :: coco , comma ,. commadot ,: commaco ; semi ;. semidot ;: semico # number #. numberdot #: numberco ! bang !. bangdot !: bangco / slash /. slashdot /: slashco \ bslash \. bslashdot \: bslashco [ squarelf [: squarelfco ] squarert { curlylf {. curlylfdot {: curlylfco {:: curlylfcoco } curlyrt }. curlyrtdot }: curlyrtco " quote ". quotedot ": quoteco ` grave `: graveco @ at @. atdot @: atco & amp &. ampdot &: ampco &.: ampdotco ? query ?. querydot a. adot a: aco A. acapdot b. bdot C. ccapdot d. ddot D. dcapdot D: dcapco e. edot E. ecapdot f. fdot H. hcapdot i. idot i: ico I. icapdot j. jdot L. lcapdot L: lcapco M. mcapdot NB. ncapbcapdot o. odot p. pdot p.. pdotdot p: pco q: qco r. rdot s: sco S: scapco t. tdot t: tco T. tcapdot u: uco x: xco _9: undernineco _8: undereightco _7: undersevenco _6: undersixco _5: underfiveco _4: underfourco _3: underthreeco _2: undertwoco _1: underoneco 9: nineco 8: eightco 7: sevenco 6: sixco 5: fiveco 4: fourco 3: threeco 2: twoco 1: oneco 0: zeroco