EGSRefer

datestamp: 201706100119

Being an unofficial protocol for referring to El Goonish Shive characters in transcripts et cetera.

Transparent syntax

This syntax should not affect the parsing of the name itself, but should be used to determine which parts should be displayed to the reader.  They should not be merely whited out but completely omitted, unless spoiler-showing is enabled.  During parsing for understanding the begin-spoiler and end-spoiler tags should be ignored, not rejected, just skipped over (hence transparent).

Syntax Meaning
/* Begin spoiler
*/ End spoiler

e.g.

Parsed syntax

Top-level syntax

Syntax Meaning
X (where X contains no whitespace) X(name)
X Y (as a list) X (name), Y (name) (i.e. egsrefer IDs are space delimited)

A name can be:

Syntax Meaning
X (where X is alphabetical, w/out spaces) X(charname)
X|Y X(name) through Y(name) avatar
X.Y Y(aspect) aspect of X(name), e.g. Susan.Curiosity
X->Y X(name) as the form identified as Y(form)
X->!==YX(name) self-visualising as Y(form) but actually saying/doing the thing and is NOTHING to do with the C inequality operator!, e.g. Sarah->!=="WizardSarah"
X->!!Y X(name) visualised as Y(form) by another but also actually doing the action e.g. Grace->!!"WarrierAngelGrace"
X->!Y Can mean either of the previous two. Legacy, deprecated since long before I published this so I dunno why left it in…
X::Y Being identified as Y(name) in the namespace of the X(universe) universe
"X" Thing nicknamed X(nickname), name not known
X("Y") Thing identified as X(name) but nicknamed Y(nickname)
"X"(?Y)Thing nicknamed X(nickname) but which probably equals Y(name)
!!X A fantasy or dream instance of X(name), actual X(name) has no association
!==X A fantasy or dream instance of X(name), according to X(name)’s own thoughts and is NOTHING to do with the C inequality operator!
!X Can mean either of the previous two. Legacy, deprecated since long before I published this so I dunno why left it in…
X(=Y) X(name), later renamed to or previously renamed from Y(name)
?->X An unknown being, in form X(form)

A form can be:

Syntax Meaning
X (where X is alphabetical, w/out spaces) transformed into X(charname)
~X An approximation of form or character X(form)
"X" X(formname), not a resemblance of anyone in particular
X.Y Y(aspect) secret identity of X(name)
X(Y) X(form) which is also known as Y(form)
[X] X(tfmode), not a scanned clone form
X(=Y) X(form), later dewitcheried resulting in Y(charname)

A tfmode can be:

If neither of these can be applied to a given TFG transformation, use a nickname as a formname instead of using a tfmode.  If it is a scanned clone form of somebody else, use the appropriate syntax instead.

A tfgvar can be:

A tfgvar is made of up to four parts:

e.g. Tedd->[FV1] Tedd->[FV5]

Grace’s Birthday Party male forms are designated thusly:

A filename can be:

A filename is designated by beginning with / (for absolute paths) or ./ (for just the filename or some other relative path) or potentially ../ (for up-one-or-more-levels relative paths).  No backslashes unless you want to look like you have been brainwashed by Microsoft and IBM into using the ubiquitous character-escape character in your file paths!

A filename: ./sarah.bak

Currently, this is not used as the only known filename that I am aware of is a clone form (which is represented as e.g. Tedd->Sarah - not that that ever happened as far as we know at the time of writing 😉.

A formname can be:

Grace’s Birthday Party female forms are designated thusly:

An aspect can be:

So far have we seen the following.  This will probably not always/still/forever be an exhaustive list in the future:

A universe can be:

At the moment, at least.  I may have forgotten something, also.

A charname can be:

A nickname can be:

Unambiguity measures

Talking in a universe namespace

(Universe X){Y}

This is a signal to interpret anything in Y (which is text containing one or more egsrefer IDs) in relation to X(universe).  e.g.