This post serves as an addendum to the About Page. Here I’ll present a more delineated and detailed overview of each part of Chraki from the ground up. There will also be a bit more time spent talking about Chraki’s future organization/philosophy, otherwise known as its Weltanschauung (from German.)
The Chraki Mission
Provide a consistently effective modeling environment for experiential reality, via fundamental abstract organizational processes, that allows for maximum (not optimal) expressive power and freedom in an aesthetically unique and engaging way that celebrates unconventionality and individualism.The Chraki Mission Statement
You might think that the most important part of that mission statement is what it states it provides (an aesthetically interesting modeling environment.) However, as the creator, I will tell you that it is actually the second most important part in my mind. The most important part comes at the very end:
… [a] way that celebrates unconventionality and individualism.
The Zeitgeist Of Chraki
Why are “unconventionality and individualism” important?
To me, Chraki is not just about application/optimization like a piece of engineering or intellectual exercise. (Actually, it’s not about optimization at all.) Likewise, it is also not just about looking pretty, nor simply an intellectual/artistic exercise.
When someone decides they’re going to create something for themselves or others they usually make decisions along the way that import various meanings to the creation. Perhaps it is handmade as opposed to store-bought, or perhaps it is funny looking on purpose, or perhaps it doesn’t work “optimally” but simply in the way that most pleases the owner. The creation becomes a statement of intent and will of the owner, particularly when it is a gift.
My creation of Chraki has always been about the ability to put what I call my “spirit of independent innovation” into something very vast and maybe even all-encompassing. I have always been an individualist (not simply non-conformist) and I believe that has always been one of my strengths. It has allowed me to retain a certain independence, and even decide to pursue what others have thought impossible or worthless (sometimes to great effect.)
Who’d Want To Learn/Speak That?
Sometimes, when I tell others my ideas, particularly ones like Chraki, I am met with a subtle incredulity at the potential benefits. Often this is encapsulated in the question, “Who’d (want) [insert verb here] that!?” or “Why would you (ever) want to (waste time) do(ing) that!?” or the worst, “Nobody’s going to do that, you’re wasting your time.”
Who’d read that? Who’d want to watch that? Why would you want to create a programming language when so many already exist? Who’d take the time to learn that? You’re asking too much of your audience, no one’s going to care.My “Well-Meaning” Audience
It’s hard not to somewhat bristle at these remarks since they are invalidating by implication, but I try to understand that they are usually spoken in good intention. I know that I can see that my concepts have merit in the future, but they may not. Moving forward after these kinds of remarks requires a certain individualistic pride, an assertion of creative thought, independence from the mainstream, and mostly just plain vision.
Go Wild Dancer!
(Note: This is quoting a song by Ruslana that you can see here.)
This uniqueness, non-conformism, and set apart wildness is the type of spirit I hope something like Chraki to have. To me, Chraki is a tool for shaping thought processes and for enabling new viewpoints and communication. Conformity, copying, dumbing down or worrying too much about how many people might use it will only dilute the final product.
So many things today have been diluted to detrimental effect. This includes, in my opinion, traditional education, heritage, morality, history, and politics. It is disheartening. For these and many other reasons, I refuse to dilute my final product. Chraki is meant then as a creation for creativity, beauty, unconventionality, exploration, and individualism.
A zeitgeist is, at its heart, the defining spirit or mood of a time-period. This outward thrust outside of the status quo I’ve outlined here is Chraki’s zeitgeist, and I hope, perhaps the coming zeitgeist of the future.
The Foundational Elements
- Primacy Of Thought
- Symbolic Reasoning/Clarity
- Formal Specification
- Practical Development And Application
Even being defined as a language, Chraki is a package delivery of a couple higher abstractions. There are three major abstract ideals or assertions that Chraki comes within this package deal. These are:
- Primacy Of Thought
- Symbolic Reasoning/Clarity
- Formal Specification.
Their elaborations are below, and afterward, I move into the concrete instances that make up Chraki today.
Primacy Of Thought
The first assertion it follows is that language and thought are separate. Contrary to the (simplistic) strict form of the Sapir-Whorf Hypothesis, Chraki posits that there can be thought, even abstract thought, without language. It makes sense here, to the author, because if there was no thought without language, how did language come to be? Thus, thought is the primary, and Chraki is the tool; it is never the other way around.
The second abstraction Chraki employs is a guideline on symbology. Being a language Chraki is symbolic, and to that end its constructions are symbolic. The idea is that any given symbol in the language has a clear relation to a particular entity/concept.
The syllabogram is an example of this: a given “letter” in something like English denotes a sort of stripped-down phoneme… but only some of the time, depending on the context. ” p “ and ” ph “ are different constructs, with the latter’s components affecting each other in an exceptional (and weird) way. This is opposed to a Chraki syllabogram whose overarching rule is one pronunciation, with other very clear and delineated rules (the morphetic system) as to why it might be different, usually with very specific symbols (such as / i /)
The third assertion (more of a goal) is that a properly constructed language should be able to convey information in such a way that its meaning can be mechanically derived. This is a bit broad, but in essence, the idea is that the ambiguity in a given linguistic structure should be able to be controlled by design, rather than get in the way of the communicator by accident.
This enables the language to be used both naturally and in precise technical fashions (much like a logical formal language.) One theoretical side effect of this assertion/goal is that such a process can then be parsed and operated upon by a mechanical entity, such as artificial intelligence.
Practical Development And Application
- Basic Phonetic Structure
- Next Layer, Same Subject (The Morphetic Layer)
- Codifications, Encodifications, Integration And Disintegration
- The Writing System
- Syntax, Semantics, And Grammar
- Programming: A Formal Technical Language
In practice, Chraki is split up into systems that build upon each other like layers. The first layer of everything is the most creative (and arbitrary) and involves what makes up the spoken part of Chraki.
Since it is a natural language, that seems to be the place to start in order to manifest it in practical use. This layer involves what utterances (phonemes) are sanctioned, or allowed, in the language, and how they are organized in relation to each other. This layer is called the “Basic Phonetic Structure” and has its own post, but I’ll provide an overview below.
Basic Phonetic Structure
Chraki “words” are formed using specific sets of “syllabic” phonemes that are constructed from a pair of smaller phonemes (being an optional consonant, and a vowel.) Each one of these “syllables” is recorded as a particular symbol in a “syllabary.” There are no “letters” in Chraki that can be arbitrarily put together to form thousands of potential “syllables,” just these combinations of a consonant (optional) and a vowel.
There are 16 consonants (/ s /, / z /, / k /, / g /, / h /, / b /, / p /, / f /, / v /, / t /, / d /, / st /, / sh /, / ch /, / j /, / gh /) that can be optionally paired to 18 vowel-like sounds (/ a /, / aa /, / ay /, / e /, / ee /, / ai /, / i /, / o /, / oo /, / ow /, / u /, / r /, / l /, / n /, / m /, / th /, / y /, / w /). Some of the vowels can also be used as consonants (known as the mixed vowels) producing a calculation for the total number of “syllables”: 16 [pure vowels + mixed vowels] + ( 23 [consonants + mixed vowels + modifiers] * 18 [all vowels] ) – 7 [post-consonant] = approximately 423 possible “syllables.”
Next Layer, Same Subject (The Morphetic Layer)
Why do I keep putting “syllables” in quotes? This is because of the way we pronounce things. How many eventual syllables are pronounced does not always match how many syllabograms are present. Take Chraki as an example.
The word Chraki is made up of three syllabograms: chr – a – ki, however because of aural drag it is pronounced as one syllable. Why/how? This rule is part of what is known as the “Morphetic Layer” when it comes to pronunciation. This layer is defined using specific rules that determine how some combinations of syllabograms are pronounced, most notably the / i / phoneme/syllabogram.
Codifications, Encodifications, Integration And Disintegration
Now that we can put sounds/symbols together to form something pronounceable we can start to use these utterances as symbols of their own to make “encodifications.” What is an encodification?
An encodification is the encoding of a “codification,” which itself is essentially an abstraction/idea/entity (what Saussure might call the signified.) Here are the definitions from the full-length post about encodifications:
The Integration And Disintegration Of Codifications: The Slightest Philosophy (Again)
- A delineated/distinguished thought(-form) which stands apart in abstraction/characteristics from other such thought(-form)s. A thought(-form) is what is conceived purely in the psychic processes of an individual, prior to expression. This would be considered Saussure’s signified component.
- A symbol, of any form, meant to indicate or refer to a codification in the eyes of the interpreter. This would be considered Saussure’s signifier component.
The Tree Of Knowledge
Codifications and their encodings (encodifications) are arranged in a graph-like structure (a tree), starting with a root vertice. From a single vertice (node) we can further delineate (disintegrate the meaning into component parts) more vertices. This is known as disintegration. Likewise, we can take multiple vertices and merge them together into one coherent meaning. This is known as integration.
Using these two techniques we can construct a huge web-like graph of connected vertices (nodes) that begin with one root codification, and theoretically end in another ultimate single codification. This forms what you might imagine as a “tree of knowledge.”
Encodifications: Long And Short
Each codification (vertex/node) has two official encodings (utterances); one long, and one short. These are referred to as the long root-form and short root-form. The short root-form is what you speak when using that codification to compose another codification, while the long root-form is made up of other codification’s short root-forms plus an optional few pseudo-syllables. In this way, one can easily see (particularly in writing) how a given root for a word is formed since you can see what concepts/codifications make it up. For more information on these constructions see their section in the full post.
The Writing System
This system/layer has been alluded to in the other layers, but it takes full form here. This layer is mainly concerned with how to represent the language in such a way that it can be recorded in a visual medium.
Syllabograms And The Syllabary
The first task that must be undertaken is determining a way to indicate what is pronounced in the language. I follow the idea of the Japanese syllabary since Chraki pseudo-syllables are made up of an optional consonant followed by a vowel much like Japanese. What we end up with is a syllabary of symbols that represent each legal sound in the language (for a total of 192 symbols.)
Certain vowel sounds and consonant sounds are “grouped” together to reduce the number of potential symbols that would have to be used. These groupings are mostly straight-forward with certain sounds being variations on others (such as the unvoiced [ k ] and the voiced [ g ], or the unvoiced [ s ] and the voiced [ z ]). Using these groupings, we are able to use two sets of accents/diacritics (modifying marks) with the syllabograms to indicate a total of approximately 423 legal pseudo-syllables.
Encodifications And Root Forms
Because we only pronounce the short root-forms of codifications we may run into the issue of being unable to distinguish which root-form belongs to which codification (if they’re similar.) To do this we use encodifications.
Each codification has an official visual encoding known simply as an encodification. This is very similar in concept to the ideographs of Chinese/Japanese. When you see an encodification in writing, you always pronounce it’s short root-form, since putting them together spells out any necessary long root-forms. This means, pronunciation wise, you only need to learn one pronunciation per symbol.
Each short root-form is recommended to be only 1-3 real syllables long. If we estimate that might be a max of 5 pseudo-syllables, we get approximately 423 to the power of 5 possible combinations (a total of approximately 13,542,600,000,000 combinations.) Granted, some of these might be hard to pronounce, as well, that’s a lot of unique combinations to potentially have to remember so we most likely won’t use them all, and possibly re-use a few.
Because of this, and following with the idea of clear symbology, as well as artistic expression, Chraki employs ideograms known simply as encodifications to indicate codifications. These ideograms are placed in expressions alongside syllabograms to flesh out and indicate their exact meaning, much like the kanji of the Japanese language.
Encodifications are not entirely self-contained and are composed of radicals. These radicals on their own also form a hierarchy which can help indicate the meaning or “family” of the encodification. For more information on that check out the full post on the Chraki Writing System.
Syntax, Semantics, and Grammar
This brings us to the nascent frontier of Chraki at the moment, that of syntax, semantics, and grammar. I am currently working with others to start fleshing out encodifications (see above), and so this section hasn’t been truly fleshed out yet. Despite this, there is one element that currently does exist that can be expanded upon, that of “words.”
Coming from a language like English, it is tempting to simply think of codifications having a direct mapping to words because in many of our surface thought processes a word is the most fundamental unit of meaning. However, acting on this analogy would be a mistake as it essentially destroys the barrier that’s been erected in Chraki between the signified and the signifier, and we’d quickly reproduce a language that may sound different, but is essentially just English (with its vagaries.)
The Problems With Words
I shall elaborate. I am a native English speaker, so I shall use English as my example moving forward, but I believe there will be similar issues present in many other natural languages.
In many languages, like English, a concept is often regarded as having a direct relation to its word. That is, blue indicates the color blue, done deal. However, what happens when we do that is that we unnecessarily tie the concept up, or limit its application, with the syntactic properties of the word. To further show, blue is an adjective and only an adjective. It is not a verb (or isn’t one yet), so it can’t be used as a verb.
Thus we tend to think of the color blue as a property, rather than say a noun, or quality of an action or even an action itself (becoming blue?) This conflagration of signified with the signifier’s rules is natural, but at its core somewhat arbitrary. [Author’s Note: On top of that, we then turn around and use the same word for connotative purposes, such as “feeling blue,” when that isn’t directly in its meaning!]
Breaking Words Open
If one of our goals is to hopefully try to expand our thought process/viewpoint, and the deliberate precision of our language, then there is no reason to follow this natural arbitrariness (no matter how metaphysically real it may seem.) There is no fundamental absolute reason why we couldn’t simply use any idea/characteristic/experience/qualia (codification) as any form of a given linguistic unit (e.g. any part of speech desired.)
Thus, in Chraki, if there is a codification defined as “blue,” let’s say, it’s entirely possible to construct a syntactic/grammatical unit that would operate as any part of speech: an adverb, verb, preposition, noun, adjective, etc. This would be known as a “word.”
These transformations serve two purposes: they vastly expand potential expressions and meaning, but more importantly, it makes definite the difference between a “word” and “codification.” This is very important when tasked with coming up with or fleshing out codifications. One must remember they are not words, but concepts apart from words.
If you’re of a programmer mindset, you might think of this separation as a form of “decoupling.” We’ve “decoupled” the core meaning (e.g. HTML) from its exact expression (e.g. CSS). We’ve taken the two different domains and separated them so that we can more effectively and efficiently use one to form the other.
The Frontiers Of Chraki
An overarching post about Chraki’s syntax, grammar, and semantics has yet to be written at the moment. This is the current frontier of the language development! If you’re interested in contributing any thoughts or effort to the cause, please register an account and join us on the Encyclopaedia and Forum! You can also use the contact form to communicate with me directly.
Programming: A Formal Technical Language
- Ultimate-Stack Development And Ubiquitous Abstraction
- Virtual Machines And Multi-Value Logic
In the previous section, I noted that syntax, grammar, and semantics are currently the wild west of Chraki development. It should come as no surprise then that Chraki as a programming/technical language also suffers from very little structure or details. Without the specification of syntax alone, any kind of mechanical processing over a language is impossible.
That being said, some general ideas and projections have been made that are being explored, as well as some foundational concepts to guide development. These include multi-value logic (and virtual machine), ultimate-stack development, ubiquitous abstraction, and meta-augmentation. These subjects are further elaborated in the post about Chraki As A Programming Language, but I shall summarize them as well below.
Ultimate-Stack Development And Ubiquitous Abstraction
One of the ideas that inspired Chraki as a programming language is an effort towards the universality of a given programming language. The idea is that one could use the same programming language to not only design and implement a computational machine, but to also program that machine with ever-higher levels of abstraction (and in the process expanding the language outward in functionality and scope.) This is opposite what we have now, where one must learn multiple languages at varying levels of abstraction to more effectively achieve various goals.
What if you could accomplish the creation of a processor, operating system, application, and inter-application communication all using the same language? It may be that at varying levels of abstraction the vocabulary and exactly how you might use the language will change, but even then behind the scenes, there would be scaffolding tying all those parts together from the smallest bit to the highest abstraction. I call this idea ubiquitous abstraction since one language would cover everything, and ultimate-stack development, since development at any point could involve any level of abstraction in the “software stack.” You can read more here.
NOTE: Be sure not to confuse a “software stack” with the abstract data type of “stack.” One is a suite of software working together, like the LAMP stack, and the other is a way of arranging data in a data structure during program execution.
In order to achieve this aim, we must carefully design the language in a particular way. You can use a language like C (or Python even) to create interpreters or compilers for other (sometimes miniature) domain-specific languages, but those resultant grammars will be totally separate from the original compiler (or interpreter) until we perform a bootstrap.
Bootstrapping is when you write a compiler for a language in the language itself, thus making it possible to augment the language functionality without using a different alternate language. That’s all fine and well, but an issue comes up if we were to try to use this process to create our ubiquitous abstraction. We’d end up with a feature-creeped compiler that keeps expanding and expanding as it became some bizarre bloated swiss army knife of programming nightmares.
I don’t particularly want a programming nightmare.
Instead, I propose that we create a foundational language with a particular vocabulary that has as a built-in “feature” the ability to augment the language itself (even at run-time), without necessarily “re-compiling.” The initial foundational language will have to be robust and complete enough to be up to any mathematical challenge, but also flexible enough to allow for functional, syntactic, and grammatical modifications.
Virtual Machines And Multi-Value Logic
But why stop only at the language? What if the “foundational language” was, in a way, a hybrid of both design and machine? What I mean is a (virtual) processor-like structure that could potentially be augmented, or modified at run-time, by an underlying “programming” language. These days it’s possible to use languages like Verilog to work with Field-Programmable Gate Arrays to create custom processors (ad infinitum). What if we made that functionality available at run-time?
At first glance, I imagine this probably sounds horrific to seasoned programmers; particularly those who have had to work with large teams of distributed people in heterogeneous organizations. However, Chraki’s guiding principles do not state “optimum,” but instead go for “expressiveness.” In reality, when you think about it, when we create programming frameworks or software packages we are essentially doing the same thing as I have proposed.
A given framework or application in any language starts to become more about the interactions and relationships between methods, functions, classes, and objects than necessarily the exact programming language itself. These relationships could easily be seen in a way as new nouns, verbs, and prepositions added to the initial programming language in a sort of short-hand. When one looks at it that way, what I am proposing isn’t necessarily too different. It would simply be being done at a different scale or point. For more information on meta-augmentation and what that might mean in terms of a virtual machine see the post related to programming in Chraki.
Hopefully, this article is able to further refine the ideas and implementations of Chraki as it stands now. As you can see there are areas where further development is required (particularly as of this the exact specifics of written radicals/idiograms, vocabulary, syntax, and grammar) but the ideas that will inform those specifics are definitely in place.
Chraki is in a nascent stage, but this is a very exciting stage to be in because there are so many possibilities that we can explore without necessarily having to worry too much about (re-)working anything that is legacy. If you are interested in helping/contributing (I have completed and outlined a contributor content license here. A Code Of Conduct is still in progress.) Please take a moment to register an account, join us on the Forum, and even possibly contribute to the Encyclopaedia.