簡體   English   中英

如何推斷Clips中的其他關系?

[英]How to infer other relations in Clips?

我想為家庭創建一個知識庫系統,以匹配家庭成員之間的不同關系。 假設我們有以下deftemplate

(deftemplate fmember 
    (slot name)
    (slot gender (type STRING) (allowed-values "female" "male") )
    (slot bd)
    (slot birthplace)
    (slot height)
    (multislot parents)
    (multislot siblings)
    (slot spouse) 
)

假設我們主張不同的家庭成員。

現在按照以下規則,家庭成員和他/她叔叔之間應該匹配

(defrule uncle 
   (fmember (name ?n)(parents ?p$?) )
   (fmember (name ?na)(siblings ?sp$?) )
   (eq ?p ?sp)
=>
   (printout t  ?na " is uncle for " ?n)
)

我要遵循的邏輯:找到一個名字為n的家庭成員,其父母p為多父對父母,找到另一個名字為na及其兄弟姐妹sp家庭成員,然后檢查p是否為以下之一na的兄弟姐妹

我不確定我在多時隙中獲取值的方式,但這就是我的理解。

要在多字段插槽中匹配單個值,請將多字段通配符放在與該值匹配的變量的兩側:

(parents $? ?p $?)
(siblings $? ?p $?) 

例如:

CLIPS> (clear)
CLIPS> 
(deftemplate fmember 
   (slot name)
   (slot gender (type SYMBOL) (allowed-values female male))
   (slot bd)
   (slot birthplace)
   (slot height)
   (multislot parents)
   (multislot siblings)
   (slot spouse))
CLIPS> 
(deffacts data 
   (fmember (name "Jack Smith")
            (gender male) 
            (parents "John Smith" "Jane Smith")
            (siblings "Janet Jones" "Jill Parker"))
   (fmember (name "Janet Jones")
            (gender female) 
            (parents "John Smith" "Jane Smith")
            (siblings "Jack Smith" "Jill Parker")
            (spouse "Bill Jones"))
   (fmember (name "Jill Parker")
            (gender female) 
            (parents "John Smith" "Jane Smith")
            (siblings "Jack Smith" "Janet Jones"))
   (fmember (name "Bill Jones")
            (gender male) 
            (parents "Bob Jones" "Sue Jones")
            (spouse "Janet Jones"))
   (fmember (name "Fred Jones")
            (gender male) 
            (parents "Bill Jones" "Janet Jones")))
CLIPS>    
(defrule uncle 
   (fmember (name ?n) 
            (parents $? ?p $?))
   (fmember (name ?na) 
            (gender male)
            (siblings $? ?p $?))
   =>
   (printout t  ?na " is the uncle of " ?n crlf))
CLIPS> (reset)
CLIPS> (run)
Jack Smith is the uncle of Fred Jones
CLIPS>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM