Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Unker Non-Linear Writing System (s.ai)
148 points by strogonoff on June 4, 2020 | hide | past | favorite | 68 comments


What a fascinating concept, especially this part:

> We have only started to develop how to hold a conversation in UNLWS itself. As we currently have it, it's a very, very different kind of thing than linear atomic turntaking. Rather, it's a sort of ongoing mutual edit of a shared structure, where revision history playback (or live observation) expresses the 'conversational' tone expected by linear conversation, and the fixed form expresses the integrated totality of what the participants have expressed. Different ink colors help to distinguish participants, but there are no boundaries preventing one participant from using another's ink as part of their own expressions. Indeed, there are a few special conversational variants of glyphs which are meant to be easier to drop in to an already-drawn passage than the normal forms; these are recognizable by their use of two ink colors. (It’s a pity that it’s so fiddly to edit pencil or pen drawings.)

I can't help but wonder how this would look like applied to instant messaging: We are used to seeing our conversations arranged in differently colored bubbles, but how would our form of communication change if we instead communicated on a collaborative surface where we could freely choose which color to use and where to add our thoughts? (Similar to how Slack already introduces a small amount of non-linearity in the form of threaded conversations, but applied on a much larger scale, so that non-linear collaborative communication becomes the default instead of an afterthought.)


I took note of that part too, it reminds me of this article [1] posted on HN recently. It contrasts the fleeting and context dependent flows of posts on social media ("the stream") with enduring wiki style interlinking of posts where the context is embedded in the linking ("the garden"). It consider it in the context of personal note taking, and I feel what you mention is the garden approach to conversation, as opposed to the normal stream approach.

I wonder what the medium would have to be like to be useful for instant messaging, since not all things being said need to endure or benefit from linking. Maybe the ink fades unless new things are written nearby, proving its relevance?

[1] https://hapgood.us/2015/10/17/the-garden-and-the-stream-a-te...


Perhaps well-implemented collaborative sketching could be the medium that turns conversations from streams into gardens (and it’s the only way of chatting in UNLWS I can imagine).

Some of the challenges I see:

— Tracking where the conversation is being advanced, since it can happen at any place in the sketch.

— Sketching, while can be more informative than text, is tricker to conform to smaller mobile screen sizes.

— Ideally it should not be limited to two dimensions only, but multi-dimensional sketching poses hard UI challenges.


Tracking: if you're asking a question or otherwise anticipating where the other will add, there are relatively few places to look.

Also, we use different colors per author in multi-author utterances, which makes it easy to spot another's writing.

Of course, unless you have an animated or history-preserving medium (which we assume we don't), then reconstructing the order of conversation might be difficult. That is entirely in keeping with our sense of what is "natural" to a non-linear language. The order in which something was written is temporal, and everything temporal is linear, so it's disfavored semantically & grammatically.

We prefer to challenge concepts like "conversation" at the root on such issues, rather than try to adapt UNLWS to afford them.

Sketching: we assume an infinite plane writing canvas. In practice, this means eg that one can use scaling to fit anything anywhere. However, we generally do not make use of images, unless it's purely quotative.

We do have e.g. graphs grammaticalized, though (inspired by Tufte's sparklines, but with a few more affordances from not being in a linear embedding.)

3d+: We considered that early on — and it's addressed in my essays on language design — but we rejected it as too under-constrained and difficult to work with in practice.

However, I've recently been thinking about a UNLWS-ish tactile 2.5D concept, which would use texture and a shallow height dimension — like a topographic map, not like an ants' nest. That's still in early conceptual stage, and not documented anywhere except a couple posts on CONLANG-L.


> we rejected it as too under-constrained and difficult to work with in practice

I’m imagining a conversation as a space containing multiple regular UNLWS planes, intersecting at certain [binding?] points.

Such an approach would ideally leave dimensionality to the medium, language itself could remain under same constraints as before.

A conversation plane would be viewed in 2D, but certain points could indicate connections outside of current plane. For such a point, viewer can pull up a projection that shows connecting conversation planes in some way (possibly 3D or pseudo-3D).

Of course, there are some technical challenges in implementing a medium that works this way, and it’s unclear how groundbreaking or useful it would be in practice (after all, all conversation planes should be possible to represent as areas on one larger plane, just with longer connecting lines).


I have two concerns with that, above the (major) technical challenges: 1. we wanted this to be writable using colored pens 2. if we add a dimension, we must add it for real.

#2 is to me the vastly harder problem. Just like in UNLWS, we always have to challenge our own assumptions in order to get a sense for what would be "native to" a two-dimensional written langauge, we'd have to do the same for 3D (or 2.5D). Merely slapping 2D planes together with some links would not come anywhere even close to a robust use of the medium, just like merely having English sentences branch off from each other isn't anywhere close to a robust use of two-dimensionality.

Fully 2D language is already an extremely conceptually challenging problem, at least to me. Hardly anyone has even tried. There are fundamental challenges, like "how do you tell a joke when you don't control the ordering".

I don't think anyone is currently able to do 3D in a way that would truly serve the medium - and the medium would need to be much better defined, since humans' inability to actually see anything 3D instantaneously (we see 2D with an imputed distance and assumptions about what the rest looks like) implies that there must be interaction-in-time of some sort (like, at minimum, moving your head or the object in order to see the whole thing). That's going to be very specific to the medium. Are we talking about arbitrary 3D disconnected polytopes, ants' nest casts, convex hulls, computer-manipulated 2D, VR goggles, ...? Those all have radically different affordances.

Simultaneously, it would trivialize problems in 2D that we have to deal with. E.g. in 3D, there's no circuit wire-crossing problem, whereas in 2D, Borromean rings e.g. have unavoidable collisions. It would be cheating to use 3D in some shallow way to get rid of that issue, without also dealing with 3D's own problems.

Design constraints are a good thing.


My concern with smaller screens is that naive zooming out would make conversation too small to be readable.

Perhaps some aspects could be borrowed from mapping apps—one-handed zoom, gradually simplifying conversation as it’s zoomed out, and highlighting which participant is looking at which area of the conversation.

I sense an exciting new approach to communication…


PS I really like the garden vs stream metaphor for UNLWS-native "conversation". I agree that it's very apt. It nicely captures the spirit of non-linear interaction.

Thank you for this new way of looking at / describing it. We may borrow it for the UNLWS documentation. ;)


Your thank you goes to karl-j, who brought it up and whom I responded to!

Thank you for your work on UNLWS!


It's definitely an interesting thought. Max Krieger also explores this at some length in "Chatting with Glue": https://a9.io/glue-comic/


Thanks, that comic looks fantastic!

Any idea where else these ideas are explored nowadays? I've seen that there are references to related projects mentioned at the end, but so far I had the impression that any research around hypertext (understood broadly) has pretty much fallen out of fashion in academia (and it sure doesn't help that hypertext is usually associated with the specific implementation of the modern web).

Lately there has been a lot of buzz around bidirectional outliners / note taking apps like Roam and Obsidian, so it seems that there is some interest. But somewhat ironically, all the more research oriented attempts that I could find seem to be scattered around the web without any kind of cohesive community.

(Of course there are still a lot of unexplored ideas dating back to Vannevar Bush, Douglas Engelbart and Ted Nelson. But more modern hypertext research seems comparatively hard to find.)


Glad you found it interesting! Personally, I get a lot of interesting information around these kinds of topics from Twitter. In addition to @maxkriegers, the author of that comic, I think you might find some value in checking out users like @andy_matuschak, @rsnous, @geoffreylitt, @yoshiki, and @elzr, as well as the broader communities that surround them.


As this seems to mediate consensus building, this also reminds me of:

https://www.wired.co.uk/article/we-will-see-the-rise-of-civi...

https://www.wired.co.uk/article/taiwan-democracy-social-medi...

Especially having a global social media network with linear discussion maxed on 280 characters seems to be one of the most efficient ways to reach disagreement.


Interesting. I've long been interested in ways to make systems more pro-social, but I hadn't previously thought of UNLWS in that context. Thank you for giving me a new idea to mull.


> I can't help but wonder how this would look like applied to instant messaging: We are used to seeing our conversations arranged in differently colored bubbles, but how would our form of communication change if we instead communicated on a collaborative surface where we could freely choose which color to use and where to add our thoughts?

Sounds a lot like Google Docs.

Maybe all this time that Google has been struggling to develop the killer chat app, they were sitting one the ultimate one this whole time.


You're describing Google Wave¹, which (sadly) was killed as unsuccessful.

¹ https://en.wikipedia.org/wiki/Google_Wave


Still wondering whether it was unsuccessful as a product or as a concept.


Can we even distinguish those in practice? AFAICT its main problem was being so general-purpose that it was hard to describe as a compelling use case.

Of course, I also don't subscribe to the belief that the popularity or memetic prowess of an idea defines its "success" except commercially. I thought it was a very nifty thing. To me, that counts as a success. Alas, that is not the metric used by companies. :p


See also Ouwi¹ by Schuyler Duveen, which is one of the very few other non-linear written languages. It takes a somewhat different approach, and (IIRC) has some examples of conversational output.

(Ouwi & UNLWS were developed without either of us knowing about the other, though we got to know each other later on.)

¹ https://ouwi.org


I believe that *Pad¹ does what you describe. In multi-user mode, it has an option to show each contributor's writing in a separate color. (I'm not sure if one can pick the color, though.)

¹ eg https://cryptpad.piratenpartei.de/pad/


This reminds me of the film Arrival and relates to the Sapir-Whorf hypothesis [1]regarding how language affects our perception and cognition. It's certainly a very interesting design (there's a hieroglyphic electrical circuit quality to it), but it wasn't clear what we can infer or gain from this non-linear form of writing. I feel like non-linear thinking is naturally how our brains work (or has more potential to work), but not how we have been trained to decode symbols, so it'd be interesting to see how this type of language might alter our cognition.

Would this help us look at ideas more holistically? Would this help us be more sensitive to relationships rather than just the objects? Could this open up new patterns of thinking? Lot's of interesting questions.

[1] https://en.wikipedia.org/wiki/Linguistic_relativity


Part of the inspiration for UNLWS was Heptapod B from Ted Chiang's Story of Your Life, from which Arrival was made.

See also my essays Non-Linear Fully Two-Dimensional Writing System Design ¹ and On the design of an ideal language ², which I wrote before we started to make UNLWS.

The written "language" in Arrival is purely babble (though it has some nice aesthetics at the fine level). It also violates explicit features described in the story, e.g. that an utterance is composed of unbroken strokes (i.e. a connected graph).

FWIW, I asked Chiang years ago whether he had any actual implementation or visualization in mind for Heptapod B. He didn't; it was purely an abstract set of properties for him.

¹ https://s.ai/essays/nlf2dws

² https://s.ai/essays/on_the_design_of_an_ideal_language


I believe that understanding relationships between units (objects, people, etc.) explains high intelligence, especially in autism, more than most average thinkers assume. People tend to fixate on the unit, and presume a relationship apropos between units. So, if we give core focus to memorizing the relationship then the unit, we may actually reinforce the neural pathways for both units and the abstraction between them without additional repetition.

My long-term memory is more efficient when I learn something from multiple angles. So, I don't look at basic algebra and just think, "X and Y are placeholders for numbers." I also think, "X can contain the value Y expressed as X=!Y." and "X can be a function of X expressed as X=X(X++)." and so on. This kind of ad-hoc modeling is about testing and defining the context of a relationship between units. And in that respect, I can say, anecdotally, that I consume information quickly and rarely have recall errors.


Fascinating. Can you explain this: "X can be a function of X expressed as X=X(X++)."

This is my (incorrect) attempt to make sense of the equation: X++ = X + 1 (?) X() What does this mean? How can X be a function?


After going through the phase of admiring this new and intellectually stimulating thing, I went on with an exercise of imagination about how it would look like for a society to have evolved somehow into using this at large. Each new word (or at least morpheme) has to have its own signature/ideogram that has to be learned and remembered. For a lexicon of any practical use that would mean thousands of ideograms. That feels quite a burden. An improved solution that I'm able to imagine just now may be to have ideograms only for abstract relations (like for prepositions) and keep "ordinary" words (as the nouns and verbs, at least) formed by a much smaller group of simpler constructs, like we do with alphabet letters?

Good stuff, nevertheless.


Ideograms clearly can work, and pretty dang well, as demonstrated by ancient China. Some phonetic representation would be nice too. Either way, you'd likely see common structures evolving into ideograms. Very interesting.


FWIW, we deliberately decided to have no phonetic representation at all, to avoid any linearizing influence.

Yes, it would need a large number of glyphs. Not so many as speculated above, though — e.g. we have one glyph that covers communicate, say, tell, hear, speech (all senses), etc. (with some mix-ins for sensory modality); another one that covers give, receive, gift, sell, etc.

Linear languages with European structure need way more words, because the syntax isn't very able to represent the shared concept between these with a single word. We can.

And yes, common structures do get turned into glyphs, or reduced forms.

We also have a barely-explored concept about glyphs being fractal (i.e. if you zoom in, it's actually the shape of an underlying utterance whose syntax "draws" the higher order glyph). This presumably would be a sort of literary or poetic form. (I have composed one very simple example.¹)

¹ https://s.ai/poetry/distant_love


Re phonetics, this may not be your goal but I was thinking about it from the standpoint of potential wide-scale usage. In that scenario, you would want phonetics for handling foreign words, or for literally discussing phonetics if nothing else. I didn't see on the page how you handle narrative, but I can imagine handing phonetic descriptions the same way. Maybe "forward" goes in a circular pattern rather than "linear"? You already have sequences like that in the distributive construct.


We have absolutely no interest in wide-scale usage, let alone if it were to come at the expense of fully exploring what a natively-2D language is like.

Narrative is an utterly different thing in UNLWS. We simply do not have "stories" in the same sense as you're used to. The closest so far is that, rather than the reward/punchline/moral/etc coming from the ordering of things, it comes from understanding the whole, i.e. as an emergent effect of the gestalt.

We don't try to have things that aren't native to 2D. We are, if necessary, able to describe something that happens on a linear timeline - that's pretty easy actually - but it simply isn't the "normal" way to arrange a large utterance. We just aren't all that interested in temporal order. We'd be more likely to represent the underlying structural order, or causality networks.

We do have a quotative, and we've talked about using IPA if we ever needed to literally refer to phonetics for some reason, but so far we simply haven't needed or wanted to do so. (Not for names, either. Names are assigned in a manner that's native to UNLWS; we don't care at all about the phonetic form in another language. Consider ASL, which does this partially [for people who do have sign-names, and under extremely heavy contact with English as a dominant language].)

We never borrow foreign words phonetically. That is just as alien to UNLWS as assigning Chinese hanzi to a name based on their meanings or stroke #s would be to an English-only speaker. We only borrow concepts, and that's only after (sometimes radically) rethinking what those concepts actually are, underlyingly, and what an UNLWS-native perspective of them would entail.

We want to explore two-dimensional language in its own right. Although we do care about expressive power, we really don't care whether it's easily translatable to/from any other languages.


I love this idea so much that I would like to learn the language. Is there a group or something I could join? Does anyone want to make a group? I'm sure we could work something out with an online drawing app.

The possiblity of getting ideas out of my head and onto paper without having to linearise everything is very exciting.



i'd love a group like that!


Words (nouns) should not be a problem, verbs maybe are. "A gives a to B" is set in the language if I understand it correctly. How to add novel concepts and interactions? There could be the risk of a reduced expressiveness compared to the spoken language which in this case is English. Anyway, natural languages had thousands (millions?) of years to evolve, this one is at the very beginning. I wonder, we don't have a natural written language like this one because it was too difficult to devise or because it's suboptimal so phonetic, syllabic and characters (as for Chinese) won?


… or because of pure happenstance, i.e. it just didn't come up?

Extant natural languages (including dead ones) do not come anywhere close to coming the entire ambit of what could happen in a language.

My interest as a conlanger is precisely that — exploring the boundaries of what language can be, not merely what it is.

As for expressiveness, I think that, within the things we've gotten to, it's just a expressive as English — and actually more so, for the things that are natural to a non-linear or recursive way of thinking.

Obviously we haven't gotten to everything. The lexicon, and grammar, are nowhere near complete. So, yes, we'll need to make lots more to cover everything.

Though also, we deliberately don't make every distinction English does, and we make distinctions English doesn't. It's a very noob move to make a conlang lexically (or even conceptually) 1:1 with a natlang.

It took us several months to figure out a non-linearly-natural way to express "if", for example. A noob would have just chucked in a new glyph and called it a day. We had to rethink fundamentals (like the scoping of irrealis); the result, IMO, is far more interesting.

As for optimality, that has nearly nothing to do with how natlangs spread. You learn a language because you need to — economically, socially, or militarily — not because it's better.

And how they evolve also has almost nothing to do with optimality in any hackery sense. That's an entirely different, stochastic process. It has some tendencies towards eg simplicity, regularity, etc, but just as many against.

In any case, the result is that natural languages don't have teleology; they don't become "better" over time, just different.


"natural languages don't have teleology; they don't become «better» over time, just different"

I remember reading about the dynamic of language evolution, where an influx of new (and language-wise uneducated) speakers tend to botch and thus simplify much of the existing linguistic constructs. Then there is the opposite effect, where once the group of speakers becomes more uniform and educated, people become more willing to adopt/respect language conventions and even go on looking for ways to express more nuanced distinctions and improve the language in general.


Another way to express the latter is that if something becomes too popular, upper socioeconomic classes will want to adopt something else, so that they can preserve a class distinction of "higher register" speech. Meanwhile, lower ones will try to adopt the style of the higher register, since it's perceived better. That's an endless cycle.

Same thing for euphemisms, insults, etc. And uniformity was far less common before mass media and centralized schooling…

Linguists have a much more descriptivist way of looking at language use and change.

Nuance is not a feature of education; focus is. E.g. AAVE (AKA Ebonics) is currently considered a lower class register, but it has grammatical distinctions that standard English doesn't (like whether an action is part of a pattern, vs a one off).

ETA: also, an influx of non-native speakers tends to result in borrowing of both words and grammar from their native languages. Not just in the development of creoles. What's "correct" is purely defined by consensus; if there are lots of new speakers, that's of course going to shift towards their preferences.


I can imagine that this 'formal' definition would evolve to an informal language, where things are simplified and symbolized into a new 'character' for which the meaning is generally agreed on.

See also: regional / cultural slang, internet / text speak. You can say "n00b" instead of "new person", or ¯\_(ツ)_/¯ instead of "idk" or "I don't know".


I'm Sai, co-creator of UNLWS. AMA(relevant).


Are you still working on it, is there a community I could join to try having a conversation using it?


Yes, we're still working on it. (E.g. we were discussing the concept "only" a couple days ago.)

Right now, our main blocker is technical: we want a JavaScript based method for rendering it from a DSL, because making, loading, & maintaining images in the doc is a huge pain.

We've provisionally decided on using Cytoscape.js, but it needs some extensions to work for us — e.g. cubic splines (it only has quadratic) and relative angles of attachment for edges to nodes. My areas of expertise are mainly back end web dev & analytics, and Alex's are mainly academic math & coding competitions, so JS isn't particularly easy for either of us.

We'd appreciate help with this. It's on my GitHub¹; get in contact personally² if interested.

As for a speaker community, we don't have one currently, though over the years we've had around 3-4 people express interest. We never really considered it something that others would want to do (though we've always been quite interested in getting feedback, suggestions, etc., and we'd be willing to engage in in-UNLWS dialogue).

However, this seems like roughly the critical mass needed for such a community, so I'll try to set one up. Please contact me directly², and LMK any platform preferences.

¹ https://github.com/saizai across a couple recent repos

² https://s.ai/contact


I've now made a Slack for it: unlws.slack.com. Invite link: https://join.slack.com/t/ulws/shared_invite/zt-ewevpfmf-s1r3...


Reminds me of this [1] blog post which was on HN a while ago about Yukaghir's (a paleosiberian group) semasiographic writing system.

Also related is this conlang that was posted to r/conlangs maybe a couple years ago that I can't seem to find now. The idea was that you can represent elementary ideas with shapes and then connect those shapes in a non-linear fashion and add slight variations to specify certain semantic properties, allowing there to be numerous different "correct" readings.

Also, shameless plug of my blog [2] where I've been fleshing out a similar idea (albeit not focused on writing) for the past few months. It takes inspiration from Discourse Representation Theory and semantic graphs.

Edit: Just read about halfway through and the similarities between your conlang and mine are striking. I'd go so far as to say that yours is just a really interesting visual representation of mine.

[1] http://historyview.blogspot.com/2011/10/yukaghir-girl-writes...

[2] https://rpandey.tech/blog


Somewhat related: Sylabitsa, a Hangul-style syllabary for Polish. Described in its current rendition in [1], but previous ideas of the author included vertically stacking syllables, thus making the alphabet potentially infinite and non-linear.

[1]: https://sites.google.com/site/qrczakmk/sylabitsa


Completely Offtopic: How does one get a single letter domain name?

Especially with a premium tld, and even moreso for a personal blog it just seems unreal.


I guess like any other second-level domainname: Fetch your piggy bank, and then go out to look for it. Peculiar things that pop in my mind right now:

- given their length, know that they are scarce; you can expect that scarcity to drive the price

- some TLDs might have a minimum length for subdomains that are available to the public

- expect a lot of them already registered since longtime, or reserved by various individuals or organizations [0]; intuitively, the chance of those getting released soon feels slim

You can use DNS (check the dig [1] utility), in combination with WHOIS if you want to gather information. Or a website of a domain registrar like [2]. Keep in mind that you might be watched doing that, information that could be used to drive up the price again.

Or, if you really have good ideas, you convince one of the current registrants to use his domain (guessing here that a lot of those domains are not really in use).

[0] https://en.wikipedia.org/wiki/Single-letter_second-level_dom...

[1] https://en.wikipedia.org/wiki/Dig_(command)

[2] https://shop.gandi.net/en/domain/suggest?search=b.xyz


Anguilla permits them. I had to buy off a squatter.

But Sai is literally my full name (I'm mononymous), at the time it was affordable to buy off the squatter, and the per year registration fee isn't too high. So I think it's certainly been worth it.


That's awesome, saw in the bio that it was actually your name too which was even cooler. I spent some time going through {X}.ai domains, surprised many are actually on sale.

Find it impressive because I always feel as though I missed out on the golden era of short domains long ago and that's clearly not the case.

Hopefully you hold onto that mate, it seems like a good patch of digital land :)

Really enjoyed reading through your other stuff too. It's great to see personal sites not so focused on one thing only.


Thanks! People are complex. It's my personal site, not a topical one, so it likewise has on it basically whatever I think would be interesting to put up. ;)

I'd welcome any feedback you have on the rest. Feel free to contact me directly.


That's really cool! Both being mononymous and having a one letter domain. Conlangs are also really cool! You are a pretty cool person!


D'aww. /blush


They have a bogus link http://eaworld.conlang.org/relays/relay19/relay19.php?ring=3... which I am not able to decipher.


Thanks for reporting the broken link. Alex has fixed it in the document. The content is now at https://000024.org/conlang/relay19/index.html

Google "conlang relay" to learn more about the context for which this was made.


Holy shit. I'm blown away by this. Imagine the ability to use these as training inputs for language processing. Just add one more representation to the bucket of things to train models on. Very fascinating. Favoriting this.


Could you elaborate? How do you see this as relating to NLP?

FWIW, I very strongly recommend Rick Morneau's monograph Lexical semantics of a machine translation interlingua ¹. It was a major influence for me, and is squarely intended for NLP model-internal usage.

¹ http://www.rickmor.x10.mx/lexical_semantics.html


Yes. Also, I suspect that feature vectors would have very natural translations into this kind of language. We could see inside the black box.



I love that “eat” looks like Pac-Man.


Actually IIRC, that was our inspiration for it. ;)


Doesn’t this just boil down to “GOTO may be useful”?


This could be utterly beautiful if fused with Dialogue Mapping:

http://www.cleverworkarounds.com/2009/09/10/the-practice-of-...


Programming is a non linear writing system. Now that I think of it ... if you replace functions names with logograms you get a top to down writing system of sorts.


Not really. Programming is very linear in all forms I know¹.

1. There's a start point. UNLWS has none.

2. There's a mandatory canonical traversal order of the text (the compiled instruction pointer, at base). UNLWS has none.

3. Structurally — i.e. even ignoring execution — it's mainly a tree, not a graph (parent class > child class > instance > function, e.g.). There are some parts that are directed graphs, like mix-ins and some RDBs. True multigraph structure is fairly rare. UNLWS is pervasively a fully connected multigraph with some directed edges (like irrealis).

Programming is, however, similar to UNLWS in that both are isomorphic to predicate calculus (e.g. functions, like UNLWS glyphs, are n-ary predicates). I think that's what you're probably catching on.

It is an important feature… but I think you're missing the more essential nature of non-linearity.

(It took me several years to grasp enough to start making UNLWS, so don't feel too chastised. It's a very difficult concept. :p)

I believe that complex circuits (as in wiring) and flowcharts do have the non-linear nature, though. Perhaps it'd help to think of those?

¹ I don't know functional programming or constraint satisfaction systems. It's possible those are different.


The actor model is non-linear. Reading the code gives you almost no clue on the order of execution.


That seems to me to be more like multithreaded linear than non-linear per se.

There are multiple linear components, and it's not obvious how they emergently interact — but they don't quite have the interconnectedness and non-directedness properties.

(I think that it's impossible for anything that's time-embedded to really be non-linear, short of time travel, since time is so fundamentally a directed linear vector.)

It's certainly a related concept, and these are aspects of non-linearity, but to my view it lacks some essential Buddha-nature of the full thing.


Especially Befunge. Here's fizzbuzz[0].

It's a stack based language where each character pushes something onto the stack or operates on the stack. The code pointer starts in the top left going to the right. But when it hits things that look like arrows (<, v, >, ^), the code pointer turns in that direction and starts executing that way. There is also the ? command which sends the pointer in a random direction, _ and | which pop a value and send the pointer left/right or up/down if its true, and # which makes the pointer trampoline over and skip the following cell in whatever direction the pointer is moving.

https://raw.githubusercontent.com/kagof/VSCode-Befunge/maste...


Maybe a pure logical programming language such as MiniKanren can be seen as non-linear? There you just read in all the rules you defined and (I think) it does not matter in which order you try to match the rules when you query the system.


> Every glyph includes a number of binding points, one for each of its arguments, the semantic roles involved in its meaning. For instance, the glyph glossed as eat has two binding points—one for the thing consumed and one for the consumer. The glyph glossed as (be) fish has only one, the fish. Often we give glosses more like “X eat Y”, so as to give names for the binding points (X is eater, Y is eaten).

Seems so ... even in logic programming we have logic glyphs. Maths is full of glyphs with connectors, especially the integral sign.

<bank-glyph>->50<money-glyph> is sorta analogous to bank->withdraw(50) ... (HN seems to be removing emojis)

This makes sense ... is this how chinese words operate ? Its logical and it makes sense why early languages were logogram based. In normal languages like english it seems the "connection" points are separate and split into separate words.

Has anyone done research on commonly used words in code ?


UNLWS can definitely be described as being based on "predicate calculus" (as in formal logic). I personally have never felt it to be a very apt or helpful description — I think of it more in terms of Lakoff-style "frames". However, every glyph in UNLWS, including the all-pervasive minimal glyph (a dot, which is implicitly in any line), is a predicate.

FWIW, no this isn't how Chinese works — and it isn't ideographic. Hanzi (& Japanese kanji) have both semantic and rhyme hinting components, and aside from a few words that are nearly minimal in their use of radicals (the components), are generally vastly underspecified to get the meaning of the grapheme unless you know it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: