123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- WORK IN PROGRESS, BRAIN DUMP OF CONCEPTS
- ================================ NEW ATTEMPT ===================================
- === CONCEPT OF A UNIVERSAL CONLANG ===
- This is an attempt at coming up with a way of how to create a constructed
- language for communication of living beings that are possibly not only humans
- but perhaps aliens quite different from us, a language whose definition is
- firm and stays unchanged over ages -- something that's very hard or even
- seeming impossible due to fuzziness and only intutive/learned semantics of any
- traditional language. The most difficult question is how to define semantics
- of terms such as "though", "life", "to be", "to exist", "consider"... even
- relatively simple words like "dog" are hard to capture, defining the word by
- translation from another language will tie the definition to another language
- that's changing, using a picture is unclear -- a picture of a dog doesn't say
- if we mean just the specific dog in the picture, any animal similar to the one
- in the picture (and HOW similar?), dog as a species (what does species even
- mean) etc.
- This is more of a recorded thought process than an attempt at creating a real
- language, the purpose is to explore the WAY in which such a language could
- eventually be made.
- Let's divide the process in these phases:
- 1. FOUNDATIONS: Defining the underlying principles on which the language is
- built, such as the model of a world it considers etc. For now we may do this
- in our current language, English and math.
- 2. ABSTRACT LANGUAGE: Here we build a language based on the principles, i.e. we
- define specific words and their meanings so that they can already form
- structures usable for communcation. However we still do this in a way that's
- abstract, i.e. still using some intermeniate notation, for example English
- and math. After this step we will have meanings of words but not the actual
- words.
- 3. SPECIFIC LANGUAGE: Here we take the abstract definition and turn it to a
- concrete language, i.e. one with its own sounds (or similar physical ways of
- communication), possibly something like a writing system etc. Of course we
- may create several languages from the same abstract language if we want.
- 1. FOUNDATIONS:
- The basic idea:
- 1. We create a model of simple mathematical world -- here we choose a 3D grid
- of discrete values in which cells can talk (emit strings of language).
- 2. We create a function that takes a talking cell on its input and decides
- (returns true or false) if the language is used correctly or not. By this
- we separate instances of the model in which cells use the language
- correctly and those where they don't. By examining the function one can
- deduce the correct use of the language, meaning of each word in context of
- the mathematical world.
- 3. If we now find a correspondence between our abstract model and real world
- (e.g. cells = beings, Z-axis = time, ...), we can use the language in the
- real world too.
- For example: if a cell is emitting a sentence that's a question, the verifying
- function will check if at the time of this there is any living cell (what's
- living will be further defined in the language) nearby to hear the question,
- as asking a question without anyone around is incorrect use of the language.
- Similarly if a cell is emitting an answer, there must have been another cell
- emitting a question nearby in the previous moment, otherwise the language is
- used incorrectly. By this we can precisely convey what it means to ask and
- answer. And so on.
- The world: we consider a world to be an arbitrarily large three dimensional grid
- of discrete values (e.g. natural numbers, but without ordering etc.). We will
- see X and Y dimensions as spatial, Z as temporal. Furthermore each cell (any
- [X,Y,Z] coordinate) MAY (or may not) be emitting a string, meaning it is
- communicating.
- TODO
- 2. ABSTRACT LANGUAGE:
- is_correct(SENTENCE, X, Y, Z): // the main function
- if (not(is_individual(world[X,Y,Z]))) // non-individuals (e.g. walls) mustn't talk
- return false
- TODO
- is_individual(TYPE): // kind of "living being"
- TODO: continuously exists in time in exactly one instance, i.e. there is
- exactly only one instance of this cell at any time, except for before its
- birth and after its death, when there are zero
- TODO
- ================================ OLD ATTEMPT ===================================
- === CONCEPT OF A UNIVERSAL CONLANG ===
- This is an attempt at coming up with a way of how to create a constructed
- language for communication of living beings that are possibly not only humans
- but perhaps aliens quite different from us, a language whose definition is
- firm and stays unchanged over ages -- something that's very hard or even
- seeming impossible due to fuzziness and only intutive/learned semantics of any
- traditional language. The most difficult question is how to define semantics
- of terms such as "though", "life", "to be", "to exist", "consider"... even
- relatively simple words like "dog" are hard to capture, defining the word by
- translation from another language will tie the definition to another language
- that's changing, using a picture is unclear -- a picture of a dog doesn't say
- if we mean just the specific dog in the picture, any animal similar to the one
- in the picture (and HOW similar?), dog as a species (what does species even
- mean) etc.
- This is more of a recorded thought process than an attempt at creating a real
- language, the purpose is to explore the WAY in which such a language could
- eventually be made.
- Let's divide the process in these phases:
- 1. FOUNDATIONS: Defining the underlying principles on which the
- language is built, such as the model of a world it considers etc. For now we
- may do this in our current language, English and math.
- 2. ABSTRACT LANGUAGE: Here we build a language based on the
- principles, i.e. we define specific words and their meanings so that they
- can already form structures usable for communcation. However we still do this
- in a way that's abstract, i.e. still using some intermeniate notation, for
- example English and math. After this step we will have meanings of words but
- not the actual words.
- 3. SPECIFIC LANGUAGE: Here we take the abstract definition and
- turn it to a concrete language, i.e. one with its own sounds (or similar
- physical ways of communication), possibly something like a writing system
- etc. Of course we may create several languages from the same abstract language
- if we want.
- === 1: FOUNDATIONS
- The basic idea of how to create firmly defined semantics is this: create a
- formal mathematical model of a world -- in this case a very simple one -- then
- create a language for this world. If we then find correspondence between our
- physical reality and our abstract mathematical world, we can use the language
- we have created also for our physical reality. The aliens can do the same as
- long as they find correspondences between the "toy universe" and their universe.
- THE WORLD: for simplicity we will consider a world to be an infinite 3D grid,
- an infinite three dimensional "array" of natural numbers.
- Note: two dimensions (X and Y) will be seen as spatial and one (Z) being seen
- as temporal (representing time). The fact one dimension represents time is not
- inherently part of the world's definition, but we will later try to view the
- world as if it is, so we mention it here just to help us form the correspondence
- of the world model to our physical reality. Similarly the natural number 0 is
- seen as "void", "non presence". Other such concepts will emerge as we'll be
- defining actual patterns.
- PATTERN: pattern is a computable set (potentially infinite) of FINITE 3D grids
- of natural numbers, i.e. we may imagine it as a function that takes any
- subspace (MxNxO sized, if any M, N and/or O is zero, all sizes are taken to
- be zero) of the world and outputs TRUE or FALSE, saying whether
- the pattern is present or not. Initial, most essential patterns may be defined
- mathematically, e.g. in a programming language, further patterns should be
- defined by using already defined patterns so as to make the language as much
- as possible "self-hosted", "self-contained".
- PATTERN GENERATORS: can be seen as a way to automatically make new patterns from
- already existing patterns, e.g. a NOT operator automatically
- makes a negation of any pattern -- if we have pattern X, NOT(X) is exactly every
- pattern that is not X.
- === 2: ABSTRACT LANGUAGE
- TODO: show it's turing complete
- TODO:
- - patterns to make:
- - "void"/"empty": any subspace that's solely composed of 0s
- - "walk":
- - numbers: infinitely many patterns, each one representing a number and
- matching subspaces that contain that many non-zero cells
- - kind numbers: same as numbers but count how many distinct numbers there
- exist in the subspace
- - pattern operators:
- - "then": takes patterns X and Y, matches if the subspace can be split in
- the temporal dimension so that lower part matches X and upper part mathes Y
- pattern generators:
- NOT(P): matches exactly every pattern that doesn't match P
- AND(P1,P2): matches any pattern that simultaneously matches P1 and P2
- OR(P1,P2): matches any pattern that matches P1, P2 or both
- THEN(P1,P2): matches any pattern that can be split in the Z direction so that
- the bottom one (under this Z) matches P1 and the upper one matches P2
- REVERSE(P): matches any pattern that if flipped vertically (in Z direction)
- matches P
- ISOLATE_N1_N2_N3_...(P): matches any pattern that if all cells not being
- N1, N2, N3, ... are replaced with zero, matches P
- EACH_MOMENT(P): matches any pattern which if slices into individual Z
- "moments", each one matches P
- todo: more
- pattern definitions:
- NOTHING: matches only empty pattern (0x0x0)
- VOID: pattern that doesn't have cells > zero, i.e. even NOTHING
- MOMENT: any pattern that has Z size of 1
- NUMBER_0: VOID
-
- numbers: WIP, ideas:
- - maybe make patterns like COUNT_TYPES_N, COUNT_CELLS_N, COUNT_TIME_N etc.,
- matching patterns with N distinct type of cells, N cells total, N size
- in Z direction respectively etc.
- - then make general patterns NUMBER_N, each of which is OR of all the above,
- i.e. generalized the concept of a number to match any pattern where number
- N is present in any form (be it number of cells, numbers of cell types,
- size of the pattern itself etc.)?
- EMERGENCE: THEN(VOID,NOT(VOID))
- DISAPPEARANCE: REVERSE(EMERGENCE)
- MOVEMENT: todo, idea: there have to be cells moving over time, e.g. in
- 4 neighbourhood
- MOVEMENT8: todo, like MOVEMENT but with 8 neighbourhood?
- SLOW_MOVEMENT: todo, like movement but limit the speed
- STILLNESS: NOT(MOVEMENT)
- KILL: todo, idea: cell close to another makes another disappear
- GROWTH: todo, idea: cells create cells of same type in their neighbourhood
- REPRODUCTION: todo, idea: cell spawns a cell of the same type in its
- neighbourhood
- CHASE: todo
- CENTER: todo, has non-zero exactly on center cell?
- EAST, WEST, NORTH, SOUTH: todo, idea: match only if there is something in
- corresponding half of the pattern
- LIFE: todo, this will be hard :)
- potentially very hard:
- SADNESS, HAPPINESS, THOUGHT, LOVE, HATE etc.
- todo: more
- === 3: SPECIFIC LANGUAGE
- TODO
|