grammar/mechanics/design for the binary language --------------------------------------------------- written on 1202601176.113418 by dwrr the language uses the following formal machine-parsable grammar: i: s s s s...s (0 or more of these, which are unordered!) s: o a a a...a (fixed arity, and ordered, defined by o) o: b b b b b b...b b (variable number of bits, self delimiting huffman encoded sequence) a: b b b b...b (variable number of bits, based on the current argument bit width setting) b: (0 or 1) (ie, a single bit) speech is a time sequence of ideas. each idea is technically a hypergraph. an idea is a set of semantic relationships, which technically has no preferred order at all in which semantic relationship ("s" in the above grammar) needs to appear first. furthermore, each argument to each relationship represents an entity in the semantic idea as a whole (ie, a node in the hypergraph), related to other entities via the semantic relationships (hyper-edges) used. that is how the language works, in terms of its high-level grammar and mechanics! pretty simple. it should be noted that the empty string is a valid utterence ("idea", "i" in the above grammar). ie, no semantic relationships are required, technically speaking. the idea seperator, is itself part of the following semantic idea, specifically it always starts an idea if present. it is not required, but is the only way to seperate two distinct ideas. its not used at the end of ideas, so its not really like a period at all, in english. there is another special semantic relationship which changes the number of bits that each argument ("a") requires. this semantic relation is also subject to the same argument-bit-width setting for its own argument. finally, the op-codes, ("o" in the above grammar) are always a self terminating binary sequence of bits, encoded using a huffman encoding, based on the approximate frequencies that the lexicon's semantic relationships are used in typical speech. this ends up encoding complex concepts as longer bit sequences, and simpler more fundamental concepts as shorter ones. the encoding is made in a way that semantically related concepts will have a similar bit pattern, often. small note: -------------- note that the information density is so high due to the fact that redundancy and error correction can be added by the speaker/transmitter as a case-by-case basis, if the communication medium requires it. it is not built into the language, as that cost should not be required for all communication, in all mediums. also, the language assumes a listener who is maximally intelligent, as catering the language towards someone who is stupid is not a very good design decision, and native speakers will learn the language easily anyways due to the language acquisition phase of human development being so effective at picking up patterns. --------------------------------------------------------------- phonetics system: 1202602043.233529 to make the language speakable by humans: 7 bits per syllable! -------------- ENCODING ----------------- consonant encoding system: ---------------------------- 0000 --> M 1000 --> N 0100 --> P 1100 --> B 0010 --> T 1010 --> D 0110 --> K 1110 --> G 0001 --> H 1001 --> L 0101 --> S 1101 --> Z 0011 --> C 1011 --> J 0111 --> F 1111 --> V vowel encoding system: ------------------------- 000 --> Y 100 --> A 010 --> I 110 --> U 001 --> Q 101 --> E 011 --> O 111 --> W -------------- PRONOUNCIATION ----------------- 2^4 = 16 consontants: ------------------------------------------ M N : me, no P B : pool, bam T D : table, day K G : kite, guy C J : show, zhao S Z : see, zebra F V : fence, vent H L/R : happy, look (R can be used in replace of L, if you have a hard time saying L, L is prefered) 2^3 = 8 vowels: ------------------------------------------ Y : as in "the", "but", "umm", A : as in "bought", "father", "jot", I : as in "bean", "meet", "deem" U : as in "food", "boom", "move", Q : as in "fat", "mad", "batter", E : as in "bed", "met", "fence" O : as in "bo" (pure sound, not found in english) W : a central close vowel, also not found in english ---------------------------------------------------------------------- EXAMPLE: lets encode this: 1110100110100110110101010011110101000110010010011010011101110 1110 100 GA 1101 001 ZQ 1011 010 JI 1010 011 DO 1101 010 ZI 0011 001 CQ 0010 011 TO 0100 111 PW 0111 0(00) FY syllables: GA ZQ JI DO ZI CQ TO PW FY clump into triplets: GAZQJI DOZICQ TOPWFY (btw, stress on the middle syllable usually, if you can! :D ) gazqji dozicq topwfy == 1110100110100110110101010011110101000110010010011010011101110 breakdown: [1110][100] [1101][001] [1011][010] [1010][011] [1101][010] [0011][001] [0010][011] [0100][111] [0111][0] GA ZQ JI DO ZI CQ TO PW FY LEXICON OF THE LANGUAGE: ----------------------------- written on 1202601025.175805 by dwrr unused: 00000000...0 : unknown instruction (null) (not used for semantic meaning) 11111111...1 : unknown instruction (other null) (not used for semantic meaning) (these will always be undefined, for clarity purposes.) ------------------------------------------------------------------------------ lexicon: ------------------------------------------------------------------------------ DELIMITERS: ----------------------------- seperate-idea(0) : idea seperator end-of-transmission(0) : unconditional and immediate end of transmission, further speaker's talking is invalid from this point, until a response is given. this SR is not required to be used. also terminates the current idea. start-of-transmission(0) : signify the start of communication with the listener, useful for alerting them that you are speaking. optional to use. acts as an idea. PARSE STATEFUL: ----------------------------- set-arg-width(1) : set argument bit width. x has a minimum width of 2. imperative(0) : mark ideas (including this one) as commands declarative(0) : mark ideas (including this one) as statements DELETION: ----------------------------- delete-idea(0) : terminate and delete the current idea delete-sr(0) : delete the last semantic relationship within this idea. INQUIRY: ----------------------------- question(1) : more information about x is being inquired, as an inquiry/question null-nonary-relationship(0) : a meaningless NOP semantic relationship with no arguments (ie, just a NOP!, kinda like "umm"...) null-unary-relationship(1) : a meaningless NOP semantic relationship with one argument. null-binary-relationship(2) : a meaningless NOP semantic relationship with two arguments. append-argument(1) : add x as another argument to the previous semantic relationship. repeat-last-sr(0) : the listener is requesting that the speaker repeat the last semantic relationship due to not receiving a symbol correctly repeat-last-idea(0) : the listener is requesting that the speaker repeat the last idea due to not receiving a symbol correctly REFERENCE: ----------------------------- at/next-sr(1) : the following semantic relationship is represented x. previous-sr(1) : the previous semantic relationship is represented x. next-idea(1) : the following idea is represented x. current-idea(1) : the current idea is represented x. previous-idea(1) : the previous idea (i) is represented x. current-entities-equal(2) : entity equality: x is the same entity as y previous-entities-equal(2) : in the previous idea, the variable y in that idea is the varible x in this one. next-entities-equal(2) : in the next idea, the variable y in that idea is the varible x in this one. EMOTIONS: ----------------------------- (... i'm going to have to figure out the brain a bit more, before we can finish this section of words...) bored: ...? curiosity: ...? disgust: ...? //future-dopamine-happiness(1) : x is the feeling of .......? dopamine-happiness(2) : x is the feeling of accute happiness due to accomplishment or reward or cause y (negative: pain/discomfort) (lack: disinterested/indifference) serotonin-happiness(2) : x is the feeling of stable happiness due to emotional stability and well-being, or contentment or cause y (negative: depression/sadness/despair) oxytocin-bond(2) : x is the feeling of being drawn to object y from trust and social bonding. (lack: loneliness) (negative: fear/distrust/anxiety PHYSICAL STUFF: ----------------------------------------------- exists(1) : x exists, physically. book(2) : x is a book consisting of pages y chair(2) : x is a chair cup(1) : x is a cup material(2) : x is made up of material y, constituents of. write(3) : writer x physically writes writable-information y via tool z sight(3) : viewer x receives and analyzes light y coming from object z listen(3) : listener x receives and analyzes sound vibrations y from object z smell(2) : ????? taste(2) : ????? eat(2) : eating, consumer x is eating editable food y me(1) : x is the speaker/transmitter you(1) : x is the audience/listener/receiver them(1) : x is neither the speaker, nor the listener communicate(4) : speaker x transmits to listener y, utterance z encoded in language w. /* 1202602194.164424 figuring out multi arity max efficient encoding: com-speaker(2) : x is the speaker in communication situation y com-listener(2) : x is the listener in communication situation y com-utterance(2) : x is the utterance in said communication situation y com-language(2) : x is the language in said communication situation y coms 1 5 coml 2 5 comu 3 5 comL 4 5 com 1 2 3 4 i think we just need some sort of partial specification for the arguments for a given opcode, which are made concrete via a edit to the actual opcode bits itself and thus specify exactly what subset of arguments are being given. its possible that we could use multiple communicate opcodes for every possible subsetting, but this also would increase the number of opcodes quite a bit lol, potentially eg: communicate(4) : speaker x transmits to listener y, utterance z encoded in language w. communicate(3) : speaker x transmits utterance y encoded in language z. communicate(3) : transmission to listener x, of utterance y encoded in language z. ...etc... all possible subsettings.... communicate(1) : x is the speaker communicate(1) : x is the listener communicate(1) : x is the utterance communicate(1) : x is a language ie, we are getting rid of the zero register, ie, zero is just another register like any other! ie, getting maximum information density for arguments! */ TEMPORAL: prior(4) : event x happened prior to y by amount of time z from w's reference frame, now(1) : event x is happening right now from the speakers reference frame. awhile(1) : event x is temporally close to y soon(1) : event y is temporarily not close to y year(1) : x is an amount of years month(1) : x is an amount of months day(1) : x is an amount of days hour(1) : x is an amount of hours minute(1) : x is an amount of minutes second(1) : x is an amount of seconds SPATIAL: position(2) : x is the physical position of physical object y displaced(3) : physical objects x and y are distanced from each other by amount of distance z distance-close(3) : x is physically proximally close to y, from y's frame of reference, via metric z meter(1) : x is an amount of meters kilogram(1) : x is an amount of kilograms GEOMETRY: angle(3) : there is an angle x, measured in radians, which is formed between entities y and z. dimensional(2) : entity x requires at least y dimensions for its non-transformed existence. INCREMENT: --------------------------------- plural(1) : x is a quantity more than one. successor(1) : x is a quanity more than zero. (should this work like the increment operation?...) successor(1) : x is the next value ("increment" operation) increment(1) : x is incremented by 1 ...? setzero(1) : x is set to zero BOOLEANS: --------------------------------- true(1) : entity x is true false(1) : entity x is false (is this actually just a NOT gate?...) not(1) : boolean entity x should be logically inverted/negated version of y truthfulness(1) : x is denoting whether or not y is true or false. uncertain(1) : entity x is not known to be true or false less-than(2) : x is less than y in quantity/order. equal-to(2) : x is equal to y in quantity/order. LOGICAL GATES: --------------------------------- and(3) : x is the boolean conjunction of y and z or(3) : x is the boolean inclusive disjunction of y and z nand(3) : x is the negated boolean conjunction of y and z nor(3) : x is the negated boolean inclusive disjunction of y and z eor(3) : x is the boolean exclusive disjunction of y and z iff(3) : x is the negated boolean exclusive disjunction of y and z MATH OPERATIONS: --------------------------------- addition(3) : x is sum of y and z (...should this be an add operation, not a statement?) subtraction(3) : x is the difference between y and z (ie, y - z) negative(2) : x is the additive inverse (negative) of y multiply(3) : x is product of y and z quotient(3) : x is the quotient of y and z (ie, y / z) modulo(3) : x is the modulo of y and z (ie, y mod z) exponential(3) : x is the exponential formed by taking base y to the power z. logarithm(3) : x is the result formed by taking the logarithm, base y, of z. nth-root(3) : x is the result fromed by taking the y'th root of z. NUMBERS: --------------------------------- zero(1) : x is the quanity/order 0 ("set-zero" operation..?) one(1) : x is the quanity/order 1 two(1) : x is the quanity/order 2 three(1) : x is the quanity/order 3 four(1) : x is the quanity/order 4 five(1) : x is the quanity/order 5 six(1) : x is the quanity/order 6 ....etc. ---> (this op-code subspace will simply count in binary, breaking huffman encoding) ...