Something about the combination of the hair, the glasses, the Grinch, the book, and the sketch just clicks.
When used in terse mode, the join-activity command returns a multifield value containing the number of comparisons made between the left and right memories, the number of partial matches added to the join memories, and the number of partial matches removed from the join memories. For this program, the find_seating rule has much more join activity than all the other rules combined.CLIPS> (clear) CLIPS> (unwatch all) CLIPS> (load manners.clp) :%%%%%%%******** TRUE CLIPS> (reset) CLIPS> (load-facts manners128.fct) TRUE CLIPS> (run) CLIPS> (progn$ (?r (get-defrule-list)) (printout t ?r ": " (join-activity ?r terse) crlf)) assign_first_seat: (1314 1315 1315) find_seating: (5847660 7067211 7067211) make_path: (49549 16510 16510) path_done: (127 254 254) are_we_done: (128 255 255) continue: (0 127 127) print_results: (257 258 128) all_done: (0 1 0) CLIPS>
In conjunction with the sort function, you can create a ranked listing of all the rules. Here's an example using the waltz benchmark.CLIPS> (join-activity find_seating verbose) Activity for CE 1 Compares: 0 Adds: 127 Deletes: 127 Activity for CE 2 Compares: 8128 Adds: 8128 Deletes: 8128 Activity for CE 3 Compares: 28255 Adds: 28255 Deletes: 28255 Activity for CE 4 Compares: 2487321 Adds: 1241614 Deletes: 1241614 Activity for CE 5 Compares: 2483228 Adds: 2483228 Deletes: 2483228 Activity for CE 6 Compares: 823428 Adds: 1660994 Deletes: 1660994 Activity for CE 7 Compares: 17300 Adds: 1644865 Deletes: 1644865 (5847660 7067211 7067211) CLIPS>
CLIPS> (clear)
CLIPS> (unwatch all)
CLIPS> (load waltz.clp)
%%%%:!!!!!!********************************
TRUE
CLIPS> (reset)
CLIPS> (load-facts waltz50.fct)
TRUE
CLIPS> (run)
CLIPS>
(deffunction ja-lt (?r1 ?r2)
(< (+ (expand$ (join-activity ?r1 terse)))
(+ (expand$ (join-activity ?r2 terse)))))
CLIPS>
(progn$ (?r (sort ja-lt (get-defrule-list)))
(format t "%-35s %10d%n"
(str-cat ?r ":")
(+ (expand$ (join-activity ?r terse)))))
initial_boundary_junction_L: 1165683
initial_boundary_junction_arrow: 511101
make_L: 163364
make-3_junction: 128960
label_arrow-1B: 59799
label_tee_B: 55991
label_arrow-2B: 39455
label_arrow-1A: 35692
match_edge: 32072
second_boundary_junction_L: 26984
label_tee_A: 17095
label_arrow-2A: 16217
label_L: 14926
label_arrow-4A: 13811
label_arrow-4B: 13811
label_fork-1: 12727
reverse_edges: 11618
plot_boundaries: 9830
second_boundary_junction_arrow: 9641
done_reversing: 3878
label_fork-2: 2213
label_fork-3: 2213
label_arrow-3A: 1838
label_arrow-3B: 1838
label_arrow-5A: 1838
label_arrow-5B: 1838
plot_remaining: 1808
label_fork-4: 614
done_detecting: 7
done_plotting: 5
done_labeling: 2
begin: 0
""
CLIPS>
In this case I've added the compares, adds, and deletes together to create a single join activity value for each rule displayed in the output. Hopefully this new command will provide CLIPS developers with more options for analyzing the performance of their rules.
Thank you! I just reviewed this app and it is better than 5 stars.I also receive criticism, mostly through the reviews in the App Store. Sometimes it’s constructive.
I love this List app and i cant tell you how many other apps i have tried and deleted and waisted money on.
Your app does everything i wanted and more.
As a firefighter-medic and working in a hospital to home life.. This app has a list for everything I need.
Thank you again
This app is worthless....glad I did not pay anything for it. It well be deleted....What a maroon.