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.
The scheme I've gone with is shown at the bottom as CHARNAME_FINAL. Thanks to all who've contributed ideas.
I've sent a batch of correspondingly-named stubs to Chris. -- IanClark 2010-02-13 13:32:45
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.).
Download: charname.ijs
Download: genfiles.ijs (for backup only)
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: -- IanClark 2010-02-12 05:59:42
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: zerocolonAnother proposal, for CamelCase names. -- IanClark 2010-02-12 09:12:38
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. http://www.jsoftware.com/jwiki/DotOnly
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 # NumberSign #. NumberSignDot #: NumberSignColon ! 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: -- IanClark 2010-02-13 13:32:45
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