Lisp HUG Maillist Archive

KnowledgeWorks

Unable to parse email body. Email id is 7336

Re: KnowledgeWorks

Before beginning, read the Giarratano/RIley book:
 
Expert Systems: Principles and Programming, Third Edition: Principles and Programming

http://www.amazon.com/Expert-Systems-Principles-Programming-Third/dp/0534950531

The authors use CLIPS as their implementation language, but CLIPS and KW seem to belong to the OPS5 family, so you shouldn't have any trouble. Truthfully, that (and the KW docs) should be enough to get you started, We use KW extensively for our system so I can help some (time permitting) if you get flummoxed.
 
NB: CLIPS is strictly a forward-chaining system (or at least it used to be), whereas KW has both forward and backward chaining engines. We have found this combination in KW to be very powerful, but the KW docs are sometimes a bit subtle. For example, buried somewhere in the doc is a sentence that tells us forward-chaining rule RHSs are implemented using the backward-chainer. I missed the implications of that when I first started with KW, and had to discover the elegance of that approach through trial-and-error (and some support questions to Lispworks).
 
Hope this helps.
 
peace, david

On Dec 20, 2007 4:32 PM, Brian Connoy <BConnoy@morrisonhershfield.com> wrote:

Hi there,

Apart from the LW samples (and my edition of "Programming Expert Systems in
OPS5"), anyone have advice on good starting points for programming knowledge
based systems in KnowledgeWorks?

Thanks in advance,
B. Connoy



--
And now these three remain: faith, hope, and love.
But the greatest of these is love.
 -- 1 Corinthians 13:13

For wisdom is more precious than rubies,
and nothing you desire can compare with her.
 -- Proverbs 8:11

Re: KnowledgeWorks

That's a *lot* of data. It's hard for me to answer that question, but I'd be concerned about performance with a naive approach. I'd say the Lispworks folks are more qualified to answer this one.
 
-- david

On Dec 23, 2007 1:09 PM, Chun Tian (binghe) <binghe.lisp@gmail.com> wrote:
Hi, David

Recently I'm thinking about using KnowledgeWorks as a ontology platform,
by import all data from the OpenCyc[1] project, and write a simple
inference engine based on KW rules. Is it possible for KW?

Thanks.
 
 

And now these three remain: faith, hope, and love.
But the greatest of these is love.
 -- 1 Corinthians 13:13

For wisdom is more precious than rubies,
and nothing you desire can compare with her.
 -- Proverbs 8:11

Re: KnowledgeWorks

Hi there.

On Dec 29, 2007 9:19 AM, Chun Tian (binghe) <binghe.lisp@gmail.com> wrote:

In CLIPS, there's a feature called `field constraint':

(defrule black-or-brown-hair
 (person (name ?name) (hair ?color&brown|black))
 =>
 (printout r ?name " has " ?color " hair" crlf))

I have to translate this rule into KW like this:

(defrule black-or-brown-hair :forward
 (person ? name ?name hair ?color)
 (test (or (eq ?color 'brown)
           (eq ?color 'black)))
 -->
 ((format t "~A has ~A hair~%" ?name ?color)))

Am I right? Can this be optimized for fast match the color field?
 
This is the proper way to do it in KW. TEST forms are "computationally cheap", according to the docs. I've found, while CLIPS syntax seems more powerful at first, in the long run KW is just as flexible and more readable.
 
 

I have no way to port $? directly, so I do this in KnowledgeWorks:

(defrule clear-upper-block :forward
 (goal ? move ?block-1)
 (stack ? is (?top . ?rest))
 (test (member ?block-1 ?rest))
 -->
 (assert (goal ? move ?top on-top-of floor)))
I'd say this is ok. The Lispworks guys might have more to add on this one.
 
peace, david
 
--
And now these three remain: faith, hope, and love.
But the greatest of these is love.
 -- 1 Corinthians 13:13

For wisdom is more precious than rubies,
and nothing you desire can compare with her.
 -- Proverbs 8:11
Updated at: 2020-12-10 08:44 UTC