Luck is undergoing some structural changes to support vocal programming. The project here will form the sub-lingual domain, but the spoken language will be developed separately by deep learning.

Establishing Connections

A relation is defined as pairs of objects.


Semantic relations are normally represented with Abstract Syntax Trees. Luck adds a further distinction to this structure by classifying relations as either strong or weak. Strong relations are unambiguous, and taken as a whole all strongly connected objects may be viewed as a single entity. Weak relations are context sensitive and subject to considerable drift.


1 + 2 * 3 - 4;; #expressions

let x: bool = true;; #binding

function f x y z = ?;; #functions

type t = { a: A, b: B, c: C };; #structures

Here, the references to types bool, A, B, and C are weak. All other relations seen here will be strong.



Why this matters


All grammatical constructions should be able to identity with themselves. Loss of identity can usually be traced back to semantic drift, and the only hedge is to draw lines separating in from out. Find and establish the strong connections. The weak connections will only drift away.