HolisticProgramming

The basics of HolisticProgramming (by NicolasMontessuit)

1°) Being, Becoming and the rest of the verbs

Occidental philosophy seems to have developed, at least since Parmenides, upon the basis of Being. (Parmenides: "That which is, is. That which is not, is not"). That is to say Substance or Essence is the main quality of any thing to be considered. Any thing is primarily understood as what it really is.

Compare this with heraclitean Becoming ("the world is a river that is never the same") or taoist Dao (the "Path" is at the same time Being and Becoming).

Roughly speaking, all modern approaches are intoxicated with this hegemony of Being. They are unable to imagine relationships between things that are not the "IS-A" type. They lack the spontaneous character of things, which indeed do not bother with logic.

As long as you see things in terms of Being, you will say things like "X IS-A Y", "X IS-A Y which IS-A Z", "each Xi IS-A Y", etc. So for the one thing, you will use discrete data structures, and for the other, these data structures will tend to be trees.

Such Being-oriented relations are indeed deeply hierarchical, as if all in Nature was a matter of father and son. But there also exists brothers and friends and lovers and ennemies and so on in Nature…

As for "brothers", you could say that "X is-a-brother-of Y" iff "X is-son-of Z AND Y is-son-of Z". But for the others relations, this is a harder trick to be done…

So we need to store horizontal relations instead of hierarchical ones, in order to capture the richness and exuberance of the world. Is that enough ?

No, we must make things even worse, we must obliterate the individuality of nodes, and make the meaning of a node depend only on its connectivity.

The reason is because when Being is no longer the core of our paradigm, we must design a way of overriding the apparent lack of sense, and create new ways of stocking meaning. But, as there is no longer father/son or tree-like dependencies, we must rely on horizontal relationships, therefore on "mass effect" (hence the word "holistic" in HolisticProgramming).

For instance, if we stock N lexicons in the same graph, even superimposing each one onto all the others, so as to get a supermetalexicon which store the translation relationships between words, we must get a way to indicate which particular meaning we intend to use, in order to transduce this meaning into the array of N words (each translation of the meaning in the N languages).

For instance, if we mean "organ" in the sense of "body part", this will result into "organe" in french and "organ" in english. Let us call ORG1 this meaning. If we mean "organ" in the sense of "musical instrument", this will result into "orgue" in french and still "organ" in english. Let ORG2 be this latter meaning.

We should find a way to code ORG1 and ORG2, that is, to represent them by means of formulas or words… This is indeed a probleme of PlatonicCategories… But we don't want PlatonicCategories. We want something adapted to HolisticProgramming.

A solution is to use the ClueNotation?. Let ORG1 = "organ: body" and ORG2 = "organ: church" for instance. But ORG1 = "organ :heart" and ORG2 = "organ: pipe :music" would do as well. (and note that "pipe" is ambiguous so you put a clue on the clue, but in practice this is useless, "organ: pipe" would suffice… this is due to the connectivity of english language)

At first sight, ClueNotation? is discrete but this is misleading. I will tell why in a few lines.

Now, as we have holistic formulas for semantic units (that is, formulas not based onto Being), we can use HolisticAlgorithms? to compute the output. Here there are some clever ideas to be used, but I won't tell them until I'm sure no one will put a licence onto these.

Just say this: if we get the input "organ: pipe: music" and "english->french", we would like to get the french word "orgue" as the output. The first idea is to create a rather clever graph that connects all the words which are related, and that is as simple as possible. The second idea is to attribute a meaning to the idea that "two subgraphs are very akin", as the graph shows it in its connectivity. Each of these ideas I solved in a very economic (and, I think, elegant) manner.

Then, you say that "organ: pipe: music" is indeed the weighed subgraph that is (node "organ" weighed to 2, node "pipe" weighed to 1.5, node "music" weighed to 1) (for instance), and you apply your holistic program of kinship computation, till you get bored. Then you pick the best of french candidates, and, how great, it happens to be "orgue".

(You see 1.5 is a real weigh and this is why the ClueNotation? is indeed continuous, even if you can arbitrarily choose to limit yourself to discrete values. A good idea would be to interpret any ClueNotation? formula in a non-deterministic way, so that a clue has a real weigh that would vary randomly (but very little). This would implement an interesting human cognitive capacity.)

This was an example of HolisticProgramming. (script running on this page, the page is in english now, click on "Voir le source" to peek at the code of the page)NicolasMontessuit (aka esc)

Discussion

(I intend to reuse some of this text in a book of mine, I hope this does not conflict with CC license) – esc

As long as you only use your own text in your book, you're always free to do so. If other people start editing your text in significant ways, however, you cannot use the edited text for your book unless you either comply with the license or get the permission of the people who contributed to the text. You always retain your copyright to your text, however, so you can always go back to a version nobody else contributed to, if you cannot comply with license and the contributors are not prepared to relicense their contributions.

Ok, this is no problem, then, since it is the original text of mine which I intend to publish. The wiki version may know an interactive destiny, however – in case people here want to have a talk about the subject…

I should perhaps use the word "hint" instead of "clue" – esc

Lions and my contributions are PPD. You don't have to ask us. That means you save time. That means you can use this time for creative work instead of waste it for asking.

I've refined my algorithm a good deal, now you can use it to do many more other things than translation. It's written in Perl somewhere. I will release it when it is clean, I still need to improve some points. The basic use is for translation. You decide that your semantic unit means (organ in the sense of body part, and in a definite sense (the vs. a), and I was also thinking about the heart at the same time), then you want to translate it into french using the common grammar. The only thing you have to do for this is to type the following line in your favorite u*x*-shell :

2fr organ: body: heart+definite -R common.kp

Also, you can translate phrases, that is, group of words more or less linked together. (there are no spaces after the colons in reality; I put them here because this wiki has the strange many of interpreting colon-P or such things as smileys…)

perhaps i don't understand the clue of the whole, but in the XanaduVersion you can do the same by matching.
http://www.wikiwiki.de/newwiki/uploads/Wiki/baumwiki.jpg

given the french word monnaie you look for a structure with that word and match against the corresponding english structure. you receive the word currency.

also, you can translate phrases.
http://www.wikiwiki.de/newwiki/uploads/Wiki/snapshot.png

heart <is> organ corresponds with coeur <être> organe
organ <has> pipes corresponds with orgue <avoir> flutes>

Well, if you can do this with trees, this is good for you. But there are two problems, I think :

(1) when you add a new language, this creates need for new trees, each existing tree must be split. This is a combinatoric explosion case.

(2) many linguistic nuances cannot be rendered by trees : take diachronic nuances, for instance.

The point (2) is not really a point, because if everybody use tools like Xanadu, the look of natural language will change, and people will tend to use a more "computerized" language, and they may even forget that diachronic nuances exist. But suppose there is a way to render them ?

Ah and also (3) a tree-based interface cannot render properly the voluntary use of ambiguous phrases. – NicolasMontessuit

[PS: Point (2) is in fact important, because language evolves; and there is also point (4) : the use of metaphors, as in poetry or philosophy. But maybe somebody has managed to translate some Baudelaire or Hegel texts with Xanadu ?]

perhaps it's not a good idea to translate some baudelaire or hegel texts with xanadu. its better to read them in books as usual. but perhaps it's possible to diskuss their topics in xanadu. but in the moment i think, the most important thing is to give wiki a more xanadu.like structure. the question is: is it possible to parse a wiki page to become a data tree? that's good for storing, searching, matching, translating, linking, refactoring, in short: cultivating, because each word is a key word. you don't work with the word, you work with the index of the word → sentence 1, sentence 3, sentence 7, sentence 89, ···.
and vice versa: is it possible to render trees (with assistance of tags, mounted in the tree (but building a special tree)) so everyone can read them like normal text?
all this is necessary to construct a common room, i think. users want to have a common room to stir around, not all that privacy with in each case special ceremony and tax. --sigi

Trees are the simplest data structure one can conceive (if we except chained lists). They are not only prehistoric, they are stupid and inesthetic. This page tried to explain how this paleolithic data structure can be (and is) superseded.

I will tell more about this later, but just for now, consider that : (1) things are not sharply separated, but are continuum-based. Trees are not continuum-based. (2) things of nature do not have the sense of unicity you find in informatic trees. (3) things are not necessarily deterministic, whereas a tree is always deterministic. (4) things do not even necessarily project themselves in an objectivist sense… but trees make them behave so…

So, trees may be a very bad solution at all, and even graphs may be a bad solution (yet a little better one).

You have to transcend these much-too-simple data structures, and supersede the "logicist" point of view. – NicolasMontessuit

hmm, interesting. --sigi

For those who can read french : my intervention in http://wiki.crao.net/index.php/RechercheTesteursDeWeblogsWiki explains some things related to the topic. – NicolasMontessuit aka esc

FrDe:http://wiki.crao.net/index.php/RechercheTesteursDeWeblogsWiki (added by lazy lousy french speaker MattisManzel - but doesn't work. Heck!)

Trying to give an english translation on WikiAndConnectivityNicolasMontessuit


NicolasMontessuit, great ideas. You should publish them in a computational linguistics journal. I am not enough of an expert to tell if these have been done before, of course. The link to your translation demo is broken, btw. Also, I assume you know about WordNet?

I agree with your programme. It would be good to find formal notations that are more continuous, less discrete, more defined by connectivity, less defined by definitions, and more distant from the notion of Being.

Define external redirect: HolisticAlgorithms ClueNotation

EditNearLinks: NicolasMontessuit

Languages: