5

私はこの宿題(私は学生です)をCLIPSで持っていますが、Googleで検索して時間を費やしても進歩しません。

(clear)
(deftemplate book
    (multislot surname)(slot name)(multislot title) 
)

(book (surname J.P.)(name Dubreuil)(title History of francmasons))
(book (surname T.)(name Eker)(title Secrets of millionaire mind))

(defrule find_title
    ?book<-(book(name Eker))
    =>
    (printout t ?book crlf)
)

私が最終的に得るのは、このエラーです:「コンストラクトの始まりが必要です」。アイデアはありますか?

4

1 に答える 1

12

load コマンドを使用してこのコンテンツをロードする場合は、コマンド (clear など) と CLIPS コンストラクト (deftemplate や defrule など) を組み合わせることになります。これを修正するには、まず構成要素だけで book.clp などのファイルを作成します。

(deftemplate book
    (multislot surname)(slot name)(multislot title) 
)

(deffacts initial
(book (surname J.P.)(name Dubreuil)(title History of francmasons))
(book (surname T.)(name Eker)(title Secrets of millionaire mind)))

(defrule find_title
    ?book<-(book(name Eker))
    =>
    (printout t ?book crlf)
)

次に、load コマンドを使用してファイルをロードして実行できます。

CLIPS> (clear)
CLIPS> (load book.clp)
%$*
TRUE
CLIPS> (reset)
CLIPS> (agenda)
0      find_title: f-2
For a total of 1 activation.
CLIPS> (facts)
f-0     (initial-fact)
f-1     (book (surname J.P.) (name Dubreuil) (title History of francmasons))
f-2     (book (surname T.) (name Eker) (title Secrets of millionaire mind))
For a total of 3 facts.
CLIPS> (run)
<Fact-2>
CLIPS> 
于 2013-10-13T15:52:11.147 に答える