The DARL language

Specifying functionality with rules

Not everyone can program, but everyone understands rules. They're the things we use to describe how to do a job, what's legal, what's polite, and a thousand other things.

Rules and arithmetic expressions can be used to specify the detail of running a business, the tax code, the law, company policy and so on.

Many things are not quite so clearly specified as the tax code. Many useful bits of knowledge are heuristics rather than hard and fast rules.

Dr Andy has developed a unique rule representation and inference system that can handle both hard and soft knowledge. It uses Fuzzy Logic and Fuzzy Arithmetic, which are both supersets of standard boolean logic and arithmetic respectively.

It's called Doctor Andy's Rule Language (DARL).

Many years of work have been put into simplifying DARL so that any reasonably intelligent person can use it.

The complexity is all hidden from the user. You just describe the inputs and outputs and then write simple "if...then..." rules tying them together.

There are only 3 kinds of input and output, numeric, categorical and textual.

A dedicated error checking editor.

The bane of learning a computer language is that it's so easy to write the wrong thing. DARL is incredibly simple: there is only one kind of rule, for instance. There is also a dedicated editor that auto-suggests possible next elements as you write code, and that sends everything off to an error checker to test.

Rule sets can be created by Machine Learning

DARL is unique in that facilities exist to machine learn a ruleset from data.

You specify a skeleton ruleset, containing just the inputs and output, and provide sample data.

The machine learning algorithm creates fuzzy sets and mines categories. it then creates the rules and inserts the new elements into the ruleset complete with annotated comments.

We're including Supervised learning, but code exists for Unsupervised, Reinforcement and Association learning.

There is a massive potential ethical problem with Machine Learning, that is only beginning to be considered: what do you do when a misclassification or poor prediction damages somebody? With DARL you machine learn fuzzy logic rules that you can understand and audit. With Deep Learning and other Neural Net techniques you create a "black box". The system has learned something, but you don't know what.