LISP Scripting Engine

Pattern-Based Search
June 19, 2017

If you want to perform more complex searches than what the pattern language allows you to do, or if you want to do your own detailed chart interpretation/analysis, you can use our state-of-the-art LISP scripting engine to help you. Or, better still, you can take advantage of our paid services to implement your own proprietary analysis.

Lisp is the most popular Artificial Intelligence Programming language. It is highly dynamic and supports higher order programming. Many modern-day languages have borrowed ideas from Lisp.

In this new release of KPAstro, we have integrated Common Lisp into the software environment, and as an experimental effort, exposed the core chart details to the script. It is therefore possible to write a Lisp program and run it in the context of KPAstro, to access chart information.

A script written in Lisp can be used in four ways:

1) To check whether the currently active chart satisfies a script
2) From the database of client charts, find out which satisfy a script
3) In chart Animation mode, identify the time points when a script is satisfied
4) Do a detailed analysis of the current chart and report on it

The first three are similar to what you can do with the pattern facility. The fourth item is specific to Lisp scripting. Let us say that you wish to write your own interpretation/prediction for a given chart. You can write your algorithm in Lisp and after testing on sample charts, distribute it to your friends, or even sell it!

It is important to keep in mind that for simple filter conditions, it may be better to use Patterns, but as your condition grows more complex, Lisp scripting may come to your aid. And of course, for offering your own prediction capabilities, Lisp scripting is the only choice.

(defun script-main()
(require-details (list DETAILS_BASIC DETAILS_SIG))
(set-result
(if (planet-signifies-any-cusp (cusp-sub-lord 7) ‘(2 7 11))
“$t$Marriage promised”
“$f$Marriage not indicated”)))

The above script checks if 7th cuspal sublord signifies one of the houses 2 or 7 or 11. If yes, it returns TRUE with the message that marriage is promised, and if not, it returns FALSE with the message that marriage is not indicated.

For complex filter conditions, the script is likely to be more involved. However, since Lisp is a full-fledged programming language, anything computable can be implemented in it. The KPAstro distribution has many examples.

As a historical note, we would like to mention that in version 2.0 of KPAstro, along with Patterns, we had introduced support for a scripting language called Lua and used it internally for our research. However, about a year ago we decided to support Lisp instead of Lua, because Lisp has a tradition of being used to build intelligent applications.

Example script to check for the presence of yogas in a chart

Leave a Reply

Your email address will not be published. Required fields are marked *