Advertisement
kokusz19

Fejlett következtetési módszerek v3 - Egyetem - Clips

May 7th, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.29 KB | None | 0 0
  1. (deffacts init
  2. (h 0 0 0 0 0 x 0 0 0 0 0 x 0 0 0 0 0 x 0 0 0 0 0)
  3. (vezeteknev egressy)
  4. (vezeteknev fenyvesi)
  5. (vezeteknev gallyas)
  6. (vezeteknev jeney)
  7. (vezeteknev vadkerti)
  8. (keresztnev edina)
  9. (keresztnev frida)
  10. (keresztnev gabriella)
  11. (keresztnev jozsef)
  12. (keresztnev vince)
  13. (egyetem budapest)
  14. (egyetem debrecen)
  15. (egyetem miskolc)
  16. (egyetem pecs)
  17. (egyetem szeged)
  18. (szak biologia)
  19. (szak informatika)
  20. (szak jog)
  21. (szak kemia)
  22. (szak magyar)
  23. )
  24.  
  25. (defrule remove-duplicated-vezeteknev (declare (salience 20)) (vezeteknev ?v) ?f <- (h $? ?v $? ?v $?) => (retract ?f))
  26. (defrule remove-duplicated-keresztnev (declare (salience 20)) (keresztnev ?v) ?f <- (h $? ?v $? ?v $?) => (retract ?f))
  27. (defrule remove-duplicated-egyetem (declare (salience 20)) (egyetem ?v) ?f <- (h $? ?v $? ?v $?) => (retract ?f))
  28. (defrule remove-duplicated-szak (declare (salience 20)) (szak ?v) ?f <- (h $? ?v $? ?v $?) => (retract ?f))
  29.  
  30.  
  31. (defrule removezeroes (declare (salience -100))
  32. ?f <- (h $?a ?v $?b)
  33. (and (test (eq ?v 0)) (test (>= (length $?b) 0)))
  34. =>
  35. (retract ?f)
  36. )
  37.  
  38. (defrule sorrend1 (declare (salience -200))
  39. ?f <- (h $?a gallyas $?b)
  40. (test (neq (length $?a) 0))
  41. =>
  42. (retract ?f)
  43. )
  44. (defrule sorrend2 (declare (salience -200))
  45. ?f <- (h $?a jeney $?b)
  46. (test (neq (length $?a) 1))
  47. =>
  48. (retract ?f)
  49. )
  50. (defrule sorrend3 (declare (salience -200))
  51. ?f <- (h $?a egressy $?b)
  52. (test (neq (length $?a) 2))
  53. =>
  54. (retract ?f)
  55. )
  56. (defrule sorrend4 (declare (salience -200))
  57. ?f <- (h $?a fenyvesi $?b)
  58. (test (neq (length $?a) 3))
  59. =>
  60. (retract ?f)
  61. )
  62.  
  63. (defrule add-vezeteknev0
  64. (vezeteknev ?v)
  65. (h 0 $?r x $?a1 x $?a2 x $?a3) =>
  66. (assert (h $?v $?r x $?a1 x $?a2 x $?a3))
  67. )
  68. (defrule add-vezeteknev
  69. (vezeteknev ?v)
  70. (h $?l ?ll 0 $?r x $?a1 x $?a2 x $?a3)
  71. (test (neq ?ll 0))
  72. =>
  73. (assert (h $?l ?ll $?v $?r x $?a1 x $?a2 x $?a3))
  74. )
  75.  
  76. (defrule add-keresztnev0
  77. (keresztnev ?v)
  78. (h $?c ?cc x 0 $?r x $?a1 x $?a2)
  79. (test (neq ?cc 0)) =>
  80. (assert (h $?c ?cc x ?v $?r x $?a1 x $?a2))
  81. )
  82. (defrule add-keresztnev
  83. (keresztnev ?v)
  84. (h $?c x $?l ?ll 0 $?r x $?a1 x $?a2)
  85. (test (neq ?ll 0))
  86. =>
  87. (assert (h $?c x $?l ?ll ?v $?r x $?a1 x $?a2))
  88. )
  89.  
  90. (defrule add-egyetem0
  91. (egyetem ?v)
  92. (h $?a0 x $?a1 ?k x 0 $?r x $?a2)
  93. (test (neq ?k 0)) =>
  94. (assert (h $?a0 x $?a1 ?k x ?v $?r x $?a2))
  95. )
  96. (defrule add-egyetem
  97. (egyetem ?v)
  98. (h $?a0 x $?a1 x $?l ?ll 0 $?r x $?a2)
  99. (test (neq ?ll 0))
  100. =>
  101. (assert (h $?a0 x $?a1 x $?l ?ll ?v $?r x $?a2))
  102. )
  103.  
  104. (defrule add-szak0
  105. (szak ?v)
  106. (h $?a0 x $?a1 x $?a2 ?k x 0 $?r)
  107. (test (neq ?k 0)) =>
  108. (assert (h $?a0 x $?a1 x $?a2 ?k x ?v $?r))
  109. )
  110. (defrule add-szak
  111. (szak ?v)
  112. (h $?a0 x $?a1 x $?a2 x $?l ?ll 0 $?r)
  113. (test (neq ?ll 0))
  114. =>
  115. (assert (h $?a0 x $?a1 x $?a2 x $?l ?ll ?v $?r))
  116. )
  117.  
  118. ; 1. a fenyvesi vezeteknevu lany jogot tanul, de nem debrecenben
  119. (defrule remove-1a (declare (salience 20))
  120. ?f <- (h $?a fenyvesi $?b x $?c x $?d x $?e jog $?)
  121. (test (neq (length$ $?a) (length $?e)))
  122. =>
  123. (retract ?f)
  124. )
  125. (defrule remove-1b (declare (salience 20))
  126. ?f <- (h $?a fenyvesi $?b x $?c x $?d debrecen $? x $?)
  127. (test (eq (length$ $?a) (length $?d)))
  128. =>
  129. (retract ?f)
  130. )
  131. (defrule remove-1c (declare (salience 20))
  132. ?f <- (h $?a fenyvesi $?b x $?c vince $? x $? x $?)
  133. (test (eq (length$ $?a) (length $?c)))
  134. =>
  135. (retract ?f)
  136. )
  137. (defrule remove-1d (declare (salience 20))
  138. ?f <- (h $?a fenyvesi $?b x $?c jozsef $? x $? x $?)
  139. (test (eq (length$ $?a) (length $?c)))
  140. =>
  141. (retract ?f)
  142. )
  143. ; 2. jozsef (nem o gallyas) az egyik fővárosi egyetemen tanul, de nem biologiat
  144. (defrule remove-2a (declare (salience 20))
  145. ?f <- (h $?a gallyas $?b x $?c jozsef $?d x $? x $?)
  146. (test (eq (length$ $?a) (length $?c)))
  147. =>
  148. (retract ?f)
  149. )
  150. (defrule remove-2b (declare (salience 20))
  151. ?f <- (h $?a x $?b jozsef $?c x $?d budapest $? x $?)
  152. (test (neq (length$ $?b) (length $?d)))
  153. =>
  154. (retract ?f)
  155. )
  156. (defrule remove-2c (declare (salience 20))
  157. ?f <- (h $?a x $?b jozsef $?c x $?d x $?e biologia $?)
  158. (test (eq (length$ $?b) (length $?e)))
  159. =>
  160. (retract ?f)
  161. )
  162.  
  163. ; 3. vadkerti gabriella nem a szegedi kemiaszakos hallgato
  164. (defrule remove-3a (declare (salience 20))
  165. ?f <- (h $?a vadkerti $?b x $?c gabriella $?d x $? x $?)
  166. (test (neq (length$ $?a) (length $?c)))
  167. =>
  168. (retract ?f)
  169. )
  170. (defrule remove-3b (declare (salience 20))
  171. ?f <- (h $?a x $?b gabriella $?c x $?d szeged $? x $?)
  172. (test (eq (length$ $?b) (length $?d)))
  173. =>
  174. (retract ?f)
  175. )
  176. (defrule remove-3c (declare (salience 20))
  177. ?f <- (h $?a x $?b gabriella $?c x $?d x $?e kemia $?)
  178. (test (eq (length$ $?b) (length $?e)))
  179. =>
  180. (retract ?f)
  181. )
  182. (defrule remove-3d (declare (salience 20))
  183. ?f <- (h $?a x $?b x $?c szeged $?d x $?e kemia $?)
  184. (test (neq (length$ $?c) (length $?e)))
  185. =>
  186. (retract ?f)
  187. )
  188.  
  189. ; 4. jeney (o pecsett tanul) keresztneve nem vince
  190. (defrule remove-4a (declare (salience 20))
  191. ?f <- (h $?a jeney $?b x $?c vince $?d x $? x $?)
  192. (test (eq (length$ $?a) (length $?c)))
  193. =>
  194. (retract ?f)
  195. )
  196. (defrule remove-4b (declare (salience 20))
  197. ?f <- (h $?a jeney $?b x $?c x $?d pecs $? x $?)
  198. (test (neq (length$ $?a) (length $?d)))
  199. =>
  200. (retract ?f)
  201. )
  202.  
  203. ; 5. frida magyartanár szeretne lenni
  204. (defrule remove-5a (declare (salience 20))
  205. ?f <- (h $?a x $?b frida $?c x $?d x $?e magyar $?)
  206. (test (neq (length$ $?b) (length $?e)))
  207. =>
  208. (retract ?f)
  209. )
  210.  
  211. ; 6. edina vezetekneve vagy egressy vagy miskolcon tanul
  212. (defrule remove-6a (declare (salience 20))
  213. ?f <- (h $?a egressy $?b x $?c edina $?d x $?e miskolc $? x $?)
  214. (and (test (eq (length $?a) (length $?c))) (test (eq (length $?c) (length $?e))))
  215. =>
  216. (retract ?f)
  217. )
  218. (defrule remove-6b (declare (salience 20))
  219. ?f <- (h $?a egressy $?b x $?c edina $?d x $?e miskolc $? x $?)
  220. (test (eq (length $?a)(length $?e)))
  221. =>
  222. (retract ?f)
  223. )
  224.  
  225. ; 7. az informatikusnak keszulo egyetemista nemreg nosult
  226. (defrule remove-7a (declare (salience 20))
  227. ?f <- (h $?a x $?b edina $?c x $?e x $?g informatika $?)
  228. (test (eq (length$ $?b) (length $?g)))
  229. =>
  230. (retract ?f)
  231. )
  232. (defrule remove-7b (declare (salience 20))
  233. ?f <- (h $?a x $?b frida $?c x $?e x $?g informatika $?)
  234. (test (eq (length$ $?b) (length $?g)))
  235. =>
  236. (retract ?f)
  237. )
  238. (defrule remove-7c (declare (salience 20))
  239. ?f <- (h $?a x $?b gabriella $?c x $?e x $?g informatika $?)
  240. (test (eq (length$ $?b) (length $?g)))
  241. =>
  242. (retract ?f)
  243. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement