Standard Information Transfer and Record Protocol

From Nguhcraft Wiki
Revision as of 11:12, 15 July 2026 by Zipsegv (talk | contribs) (Bring in content from ODS/00000102)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Standard Information Transfer and Record Protocol
Writing systemLatin script
Official status
Spoken inThe Complex
Regulated byArchon Council
Speaker
Endonym0{qM
Number of speakers1
Technical information
UsageStandard communication done by The Complex
Language codeSIT

The Standard Information Transfer and Record Protocol (SITRP) is the standard protocol for communication, and is used for all internal communication and information storage within the Complex.

Concepts

A concept is a single, indivisible ideatic unit. All concepts are innately sets and may be used to refer to more than one singular thing. Some concepts (such as those referring to individual players or ŋations) may consist of a single element, while others (such as the concept referring to a specific building) may not.

Orthography

Concepts are indexed by their concept number, which is a positive integer less than 68 574 961 (92^4). Concepts are written as a 4-digit base-92 number, with each digit represented as a single ASCII character. The following table is used to map between a digit's value in decimal and its corresponding ASCII character:

Character Value in Decimal
! 0
" 1
# 2
$ 3
% 4
& 5
' 6
* 7
+ 8
, 9
- 10
. 11
/ 12
0 13
1 14
2 15
3 16
4 17
5 18
6 19
7 20
8 21
9 22
: 23
; 24
< 25
= 26
> 27
? 28
@ 29
A 30
B 31
C 32
D 33
E 34
F 35
G 36
H 37
I 38
J 39
K 40
L 41
M 42
N 43
O 44
P 45
Q 46
R 47
S 48
T 49
U 50
V 51
W 52
X 53
Y 54
Z 55
[ 56
\ 57
] 58
^ 59
_ 60
` 61
a 62
b 63
c 64
d 65
e 66
f 67
g 68
h 69
i 70
j 71
k 72
l 73
m 74
n 75
o 76
p 77
q 78
r 79
s 80
t 81
u 82
v 83
w 84
x 85
y 86
z 87
{ 88
| 89
} 90
~ 91

For example, the number 17 250 561 (the concept for a written symbol) would be written as 91-,

Relations

A relation is a connection between two concepts. A relation has three parts, all of which are concepts; the first two concepts are named the operand concepts (named A and B), and the final concept is named the relation concept (named R). The construction as a whole means that the two operand concepts are related by the relation concept. For example, we may construct a relation saying that "players place blocks", or more precisely "players relate to blocks by placement". To write this, we simply place the concepts for players, blocks, and placement side by side:

player block placement                  (1) Start with concepts
14917560 56543387 64284108              (2) Find corresponding concept numbers
61NGk[M$uV!?                            (3) Write in base-92 notation

A text in SITRP consists of a list of relations each on its own line, called top-level relations. All top-level relations should be taken to be declarations of fact, relative to the text that contains them.

Quantifiers

A quantifier is similar to a relation, except it has only two parts: the operand (A) and the quantifier (Q). Quantifiers are used for many different things, but generally have the use of modifying the meaning of a concept in some way. For example:

  • ZqMq (not) inverts the meaning of A via logical negation.
  • @\?. (opposite) takes the semantic opposite of A.
  • UN@/ (process) the process by which A is achieved.

Quantifiers are constructed similarly to relations, except instead of using three concepts, only two are used. For example, to say "the opposite of a cow":

cow opposite                            (1) Start with concepts
54428598 23066987                       (2) Find corresponding concept numbers
huZ5@\?.                                (3) Write in base-92 notation

Compounding

A phrase may be surrounded in parenthesis () to group it into a compound. Compounds represent the semantic meaning of the phrase as whole. For example, take our example from earlier:

61NG   k[M$  uV!?
player place block
"players place blocks"

If we were to surrounded it in parenthesis, it would then mean:

(61NG   k[M$  uV!?)
(player place block)
"the placement of blocks by players"

By default, a compound represents the relation, taken as a whole. For verb-like relations, this usually means the action of doing R by A to B. However, if instead what is wanted is a phrase that means "A that does R to B" or "B that has R done by A", then the quantifiers i!K? (select.operand1) and uEv2 (select.operand2) may be applied to the whole compound. These select the operand of the compound that is being referred to. For example:

((61NG   k[M$  uV!?)  i!K?           )
((player place block) select.operand1)
"players that place blocks"
((61NG   k[M$  uV!?)  uEv2           )
((player place block) select.operand2)
"blocks that are placed by players"

Numbers

Numbers are formed by the special relation SQG} (special.number). When this relation is used, its operands are not to be treated as concepts, instead they should be treated as digits. The final number should be the result when appending its operands and reading it as a base-92 number. For example:

(!8;rp4`qSQG})

represents the number !8;rp4`q, or in decimal, 12 345 678 912 345.

Variables

To refer to a previously mentioned concept, a variable may be used. Variables are indexed by their number, and are created using the special relation ;,Z7 (special.variable). The syntax for this relation is the same as that of numbers, except that the result is the variable that the number represents. For example:

(!!!!!!!";,Z7)

represents variable #1. In addition, there exist some shorthand concepts which represent variables with low indexes. These mean exactly the same things as the expanded versions in every context, but exist for the purpose of convenience. They are:

VN%< Variable #0
oH{J Variable #1
W@dj Variable #2
<LNQ Variable #3
!Vwf Variable #4
$K1. Variable #5

When used a variable is used as a quantifier, it means that the operand is then bound to that variable. When a variable is itself used as an operand, it refers to the meaning which it was last bound to. If the meaning of the operand changes (e.g. it refers to an object via referring to where it is relative to a location, but the intended object has moved since) then the variable retains the original meaning of the operand when the variable was bound.

A variable binding still has the same meaning as the bound phrase; this allows one to bind a variable as a phrase is being used.

For example, take the phrase:

(61NG   /<}a)huZ5 b!q2
(player any )cow  kill
"a player kills cows"

We can then bind the player to a specific variable. Notice how, despite wrapping the player in a variable quantifier, the meaning of the phrase stays the exact same:

((61NG   /<}a) VN%< ) huZ5 b!q2
((player any ) var.0) cow  kill
"a player kills cows"

We can then use our bound variable in another clause:

VN%<  T*IO    /}cP
var.0 leather desire
"(the same) player wants leather"

Here, the variable refers to the same player we bound in our previous example.

Variables may also be bound to entire top-level relations, which is useful if you wish to use that relation in multiple places (e.g. going over the implications of a specific rule).

Occasionally, unbound variables may be seen, especially in text fragments. These typically represent concepts that the reader is supposed to know about.