This guide is still a work-in-progress and pages are missing!

The basics

This page is a quick introduction to Trilangle fundamentals needed to understand the rest of the grammar and make a simple sentence.

What do triangles do?

Triangles assert existence, which can be qualified by predicates. Red triangles ("Reds" for short) assert the existence of objects and entities.

Idiomatic translation
"There is a cat."
Literal translation
There exists a thing x such that x is a cat.
Formal semantics
∃x cat(x)

The red triangle above asserts the existence of an object-type variable x, and applies the predicate cat to x. You can think of the variable x as being like a subject in a sentence or clause, and the predicate in the triangle is, of course, the predicate. That means a single triangle can be an entire sentence on its own!

Note that the choice of variable name (e.g. x, y, etc.) is arbitrary, and two different triangles will assert the existence of two different variables.

Idiomatic translation
"There is a cat and a dog."
Literal translation
There exists a thing x such that x is a cat, and there exists a thing y such that y is a dog.
Formal semantics
∃x cat(x) & ∃y dog(y)

Blue triangles ("Blues" for short) assert the existence of events.

Idiomatic translation
"Sleep is happening." (alternatively, "something is sleeping")
Literal translation
There exists an event e such that e is sleep.
Formal semantics
∃e sleep(e)


In addition to existing, something can also not exist (negative polarity), or maybe exist (unknown polarity). We represent this by drawing the triangle with dashed lines for unknown polarity, and dotted lines for negative.

There is a spoon ∃x spoon(x)
There might be a spoon ?∃x spoon(x)
There is no spoon !∃x spoon(x)

Donating and recieving variables

Triangles can donate their variable to adjacent triangles. A triangle that accepts the donated variable uses as an argument to its predicate.

Idiomatic translation
A cat is sleeping.
Literal translation
There exists a thing x such that x is a cat, and there exists an event e such that e is an event of x sleeping.
Formal semantics
∃x cat(x) & ∃e sleep(e, x)

Notice how the Red, when attached to the bottom of the Blue, donates its own variable x to the Blue. The Blue now uses x as an argument to sleep and becomes ∃e sleep(e, x) ("x is sleeping") instead of just ∃e sleep(e) ("sleep is happening.")

Different color triangles donate and receive variables differently. The Red donates its variable on all sides, but never accepts donations. Blues donate only on its left side, but accept donations from the bottom and right sides.

In the following figure, an outward arrow indicates that the triangle donates its variable from that side. An inward arrow indicates that the triangle accepts donations from that side.

Since orientation matters for Blues, a dot is used to mark the "top." If you rotate the Blue, the dot will move along with it, as will the edges that donate variables or accept donations.

With correct placement, Blues can use variables from Reds because Reds donate variables while Blues can accept them.

Two Reds will never use each others' variables even if they are adjacent, because they always give but never receive.