From: jbar
Subject: Lisa tutorial?
Date: 
Message-ID: <1132189297.013847.109890@g43g2000cwa.googlegroups.com>
Hello,

I have 0 AI experience (sadly) and I'm learning Lisp. I want to make
something more interesting than my day-to-day J2EE buzzword compliant
enterprise app, and I think Lisa (http://lisa.sourceforge.net/) could
help me with that.

Does anybody could point me to some sort of howto/tutorial about this?
(their documentation is a "work-in-progress") Or maybe there are
equivalent and better alternatives for a rules engine?

If anybody has used it I have a question bugging me. Is it required
that all the CLOS objects that Lisa can reason about are in RAM? Could
you lazy-load them from some storage? 

Thanks
Jaime

From: Paolo Amoroso
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <87psozo827.fsf@plato.moon.paoloamoroso.it>
"jbar" <·········@gmail.com> writes:

> I have 0 AI experience (sadly) and I'm learning Lisp. I want to make
> something more interesting than my day-to-day J2EE buzzword compliant
> enterprise app, and I think Lisa (http://lisa.sourceforge.net/) could
> help me with that.
>
> Does anybody could point me to some sort of howto/tutorial about this?

See this blog entry, particularly the book recommendations:

  LISA and rule-based programming in Common Lisp
  http://www.paoloamoroso.it/log/050827.html


> If anybody has used it I have a question bugging me. Is it required
> that all the CLOS objects that Lisa can reason about are in RAM? Could

Yes, as far as I know, CLOS objects have to be in RAM.


Paolo
-- 
Why Lisp? http://wiki.alu.org/RtL%20Highlight%20Film
Recommended Common Lisp libraries/tools:
- ASDF/ASDF-INSTALL: system building/installation
- CL-PPCRE: regular expressions
- CFFI: Foreign Function Interface
From: Thomas F. Burdick
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <xcvoe4jt7gi.fsf@conquest.OCF.Berkeley.EDU>
Paolo Amoroso <·······@mclink.it> writes:

> "jbar" <·········@gmail.com> writes:
>
> > If anybody has used it I have a question bugging me. Is it required
> > that all the CLOS objects that Lisa can reason about are in RAM? Could
> 
> Yes, as far as I know, CLOS objects have to be in RAM.

No, STANDARD-INSTANCEs all have to be in the address space; Franz's
Allegro Cache is one approach to not keeping them all mapped all the
time.  I have no idea if this isuseful wrt Lisa, though.

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | Free Mumia Abu-Jamal! |
     ,--'    _,'   | Abolish the racist    |
    /       /      | death penalty!        |
   (   -.  |       `-----------------------'
   |     ) |                               
  (`-.  '--.)                              
   `. )----'                               
From: jbar
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <1132274442.254222.312200@g49g2000cwa.googlegroups.com>
I have read nothing but good opinions about Allegro Cache, but it means
$$$.

I wonder if there are alternatives. The only hint I have found is this
http://lispmeister.com/blog/lisp-news/allegrocache.html, that talks
about FramerD and Statice. The later seams to be dead, and the former
is apparently too slow for real apps (search for "FramerD" or
"performance"  in this page http://tunes.org/~nef/logs/lisp/05.05.20)

The other alternative that I could think of is cl-sql, but I don't know
if it will work
From: Edi Weitz
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <uhdaa54t4.fsf@agharta.de>
On 17 Nov 2005 16:40:42 -0800, "jbar" <·········@gmail.com> wrote:

> I have read nothing but good opinions about Allegro Cache, but it
> means $$$.
>
> I wonder if there are alternatives.

Google for "Plob" (but check the license of the underlying C code
first if you plan on using it commercially).

Cheers,
Edi.

-- 

Lisp is not dead, it just smells funny.

Real email: (replace (subseq ·········@agharta.de" 5) "edi")
From: jbar
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <1132273713.317664.105330@g44g2000cwa.googlegroups.com>
Thanks a lot Paolo for the references

I bought the two books you reference in your blog, I'll take a deeper
look at the subject.

>From the thread you reference (in comp.ai) it seams that rule-based
systems are seldom used by themselves noadays and they mention Bayesian
Networks, genetic algorithms, etc.  (The main reason seams to be that
the applicability of rules alone is limited because they are rigid and
when their number grow above some -- undetermined -- number it is very
difficult to understand and maintain the system. Did I get that right?)

Now imagine you are writting business software, the mayority of it is
just keeping track of things, and that's basically: define the players,
enter data with restrictions, run reports

Do you think that for that kind of vanilla business apps we need to
"complement" Lisa with anything? And if that's the case, did you find
freely available implementations?

I'm just trying to get a sense of how far the rules approach will take
me by comparing it with something known, and if it needs to be
complemented with something else, then with what, and how, and why

Lots of questions, the kind you get when entering new territory
Exciting stuff :)

Thanks again!
Jaime
From: Surendra Singhi
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <oe4itxhv.fsf@netscape.net>
"jbar" <·········@gmail.com> writes:

> Thanks a lot Paolo for the references
>
> I bought the two books you reference in your blog, I'll take a deeper
> look at the subject.
>
>>From the thread you reference (in comp.ai) it seams that rule-based
> systems are seldom used by themselves noadays and they mention Bayesian
> Networks, genetic algorithms, etc.  (The main reason seams to be that
> the applicability of rules alone is limited because they are rigid and
> when their number grow above some -- undetermined -- number it is very
> difficult to understand and maintain the system. Did I get that right?)
>

Yes, statistical reasoning is more common and popular nowadays. But which one
to use depends upon your application and needs.


-- 
Surendra Singhi
http://www.public.asu.edu/~sksinghi/index.html

The best-laid plans of mice and men go oft astray.
From: ··········@gmail.com
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <1132325530.136629.35610@g44g2000cwa.googlegroups.com>
I know for certain of *new*, successful commercial applications that
employ Lisp-based rule systems with no extensions. As with other
software systems, the approach taken depends on the problem's
requirements.

Peace, david
From: Paolo Amoroso
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <877jb6f2q3.fsf@plato.moon.paoloamoroso.it>
"jbar" <·········@gmail.com> writes:

>>From the thread you reference (in comp.ai) it seams that rule-based
> systems are seldom used by themselves noadays and they mention Bayesian
> Networks, genetic algorithms, etc.  (The main reason seams to be that
> the applicability of rules alone is limited because they are rigid and
> when their number grow above some -- undetermined -- number it is very
> difficult to understand and maintain the system. Did I get that right?)

I think so.


> Now imagine you are writting business software, the mayority of it is
> just keeping track of things, and that's basically: define the players,
> enter data with restrictions, run reports

Besides rules, another way of "keeping track of things" may be the
dataflow approach.  Some time ago, Kenny Tilton mentioned the
possibility of using his Cells system:

  http://common-lisp.net/project/cells/

for representing business rules as constraints.


> Do you think that for that kind of vanilla business apps we need to
> "complement" Lisa with anything? And if that's the case, did you find
> freely available implementations?

So far, I have used Lisa without extensions.


Paolo
-- 
Why Lisp? http://wiki.alu.org/RtL%20Highlight%20Film
Recommended Common Lisp libraries/tools:
- ASDF/ASDF-INSTALL: system building/installation
- CL-PPCRE: regular expressions
- CFFI: Foreign Function Interface
From: ··········@gmail.com
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <1132258752.483318.223210@g44g2000cwa.googlegroups.com>
Hi. I don't have much time these days to spend on Lisa; sorry about the
"work-in-progress" docs. The best tutorials in existence are 1) Paolo
Amoroso's blog; and 2) the examples provided with Lisa.

If I understand your second question correctly, Lisa can reason about
"lazy-loaded instances" if by that you mean some of an instance's slots
are not bound until first referenced.

Peace, David.
From: jbar
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <1132276235.531106.95500@g49g2000cwa.googlegroups.com>
Please David don't take the "work-in-progress" thing as a criticism. I
thank you for writing the system in the first place!

Now if it doesn't have a "for dummies" manual it will be harder for me
to "get it", but it's ok, I'll enjoy doing it.

About the "lazy-loaded instances" question:
Yes I meant something like that. I was thinking, what if I have so many
objects to reason about that eventualy they consume all my RAM. Say,
240,000,000 instances of Person and I have some tax related rules. Or a
few billion instances of some kind transaction, or whatever.

What do you do in such cases?

Thanks!
Jaime
From: ··········@gmail.com
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <1132324749.976155.30240@g47g2000cwa.googlegroups.com>
No offense taken. I wish I had more time to take Lisa to the next
stages.

Others will have different suggestions, I'm sure. But, that many
instances in working memory will likely be problematic. An interesting
place for you to look might be Plob! It's a cool persistent object
store for Lisp. I don't know if it's maintained any longer, but I've
played with it several times and it's very nice.

If you can go the commercial route, Lispworks offers KnowledgeWorks, a
very nice production rule system based in part on Ops5. This package
offers both forward- and backward-chaining inference engines. I have
extensive experience with it and like it a lot.

Peace, david.
From: jbar
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <1133215293.039480.8720@z14g2000cwz.googlegroups.com>
I want to try using only opensource tools, both as a validation of the
opensource way and because I don't have any money ;)

I took a look at Plob's web site and I see it depends on POSTORE, the
licence of which is not very clear.

For a beginner like me I guess the best path will be to read the books
I bought and play with Lisa and maybe Elephant and see where that takes
me

More newbie questions comming after that :)
Thanks
Jaime
From: ··········@gmail.com
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <1132325189.052432.99310@g14g2000cwa.googlegroups.com>
Oh, I forgot. With KnowledgeWorks, it's possible to reason over objects
that live in a relational database that are accessed via the LispWorks
CommonSQL interface. Yet another possibility to consider...

Peace, david
From: Paolo Amoroso
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <874q6agiu8.fsf@plato.moon.paoloamoroso.it>
"jbar" <·········@gmail.com> writes:

> Yes I meant something like that. I was thinking, what if I have so many
> objects to reason about that eventualy they consume all my RAM. Say,
> 240,000,000 instances of Person and I have some tax related rules. Or a
> few billion instances of some kind transaction, or whatever.

If the number of objects to reason about is so large, I guess the
overhead of the associated Rete network created by Lisa is likely to
be a much larger issue.


Paolo
-- 
Why Lisp? http://wiki.alu.org/RtL%20Highlight%20Film
Recommended Common Lisp libraries/tools:
- ASDF/ASDF-INSTALL: system building/installation
- CL-PPCRE: regular expressions
- CFFI: Foreign Function Interface
From: ··········@gmail.com
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <1132324906.977094.324740@g44g2000cwa.googlegroups.com>
That's exactly right. And, it will probably be the driving factor in
most production rule systems. That's certainly been my experience.

Those implementations of Rete I've used (commercial and otherwise) have
been memory intensive.

Yet another possibility for you is Loom. I've worked a lot with this
system and it's very cool.

Peace, david
From: svg
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <1132321083.537524.192580@z14g2000cwz.googlegroups.com>
Good day,

> I have 0 AI experience (sadly) and I'm learning Lisp. I want to make
> something more interesting than my day-to-day J2EE buzzword compliant
> enterprise app, and I think Lisa (http://lisa.sourceforge.net/) could
> help me with that.
>
> Does anybody could point me to some sort of howto/tutorial about this?
> (their documentation is a "work-in-progress") Or maybe there are
> equivalent and better alternatives for a rules engine?

I'm also trying to learn and use Lisa as all-in-one intelligent event
handler/business rules processor
for OLTP-intensive application (near 1M transactions per day, several
million records in database).

Probably the best way to learn Lisa is to get get a copy of "Jess in
Action" of Ernest Friedman-Hill.
Jess and Lisa have a lot of similarities and you can use "Jess in
Action" as Lisa handbook.

This book also touches some practical aspects you are probably care
about.

Best Regards,
Vladimir Sekissov
From: jbar
Subject: Re: Lisa tutorial?
Date: 
Message-ID: <1133215611.718799.28060@z14g2000cwz.googlegroups.com>
Vladimir,

Thanks for the suggestion, I'll take a look at the book (it's in the
mail). The fact that Jess is Java may be good for my learning process,
Java is the known stuff

Jaime