Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

More expressive data-driven programming?

Name: Anonymous 2016-02-01 14:47

About 2 years ago I read Norvig's book PAIP about Lisp and symbolic AI.

It talks a fair bit about data-driven programming which seems like a fine programming technique.

There is something that I am wondering about though and it is whether existing data-driven programming methods could be extended to be more powerful or expressive.

For instance in a computer algebra system I was programming there were algebraic reductions like

A * U/A * FOO * BAR * XYZ --> U * FOO * BAR * XYZ

(A + W + (B * C * X) / U + (C * D * Z) / E) / C --> (A + W) / C + (B * X) / U + (D * Z) / E

I couldn't come up with a pattern to match cases like these so I had to code them "manually" with loops and if-statements. But intuitively it seems some kind of pattern could be designed for these.

Could a future pattern-matching language be more powerful and capture cases like these?

It seems the current ones, as discussed in PAIP and also in SICP, only work with very rigid fixed algebraic structures with predetermined numbers of terms and factors.

Perhaps that could be a future AI research area? Although nowadays probabilistic rather than symbolic AI seems to have taken over, especially with machine learning.

If a more expressive language is designed then more powerful AI applications could be developed and at a faster pace.

For reference this is an example which illustrates existing techniques: http://norvig.com/paip/macsymar.lisp

Name: Anonymous 2016-02-03 13:34

The general approach is to first devise some sort of a normal form (open all parentheses, distribute all multiplications etc, sort all terms), then apply reductions to each term.

Without a normal form I'm not sure what you are even trying to do because your transformations don't have a goal.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List