User:Ian Clark/FormalPageNames

From J Wiki
Jump to navigation Jump to search

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.).

Wm yes check.png

Wm yes check.png

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