Đây là một thuật toán khuyết nạp quy tắc (rule induction algorithm) được dùng rộng rãi gọi là RIPPER. Thuật toán này mở rộng gần như tuyến tính với số lượng thể hiện huấn luyện và đặc biệt phù hợp cho xây dựng mô hình từ các tập dữ liệu với phân bố lớp không cân bằng (imbalanced class distributions). RIPPER cũng hoạt động tốt với tập dữ liệu nhiễu (noisy data sets) vì nó dùng tập xác thực (validation set) để ngăn chặn overfitting mô hình.
RIPPER chọn lớp đa số (majority class) làm lớp mặc định (default class) của nó và học các quy tắc để xác định lớp thiểu số (minority class). Đối với bài toán đa lớp (multiclass problems), các lớp được sắp xếp theo tần suất của chúng.
Cho (y₁ y₂...y_c) là các lớp được sắp xếp, nơi y₁ là lớp ít xuất hiện nhất và y_c là lớp xuất hiện nhiều nhất. Trong lần lặp đầu tiên, thể hiện thuộc về y₁ được gán nhãn là ví dụ dương tính (positive examples), trong khi những cái thuộc về các lớp khác được gán nhãn là ví dụ âm tính (negative examples).
Phương pháp bao phủ tuần tự (sequential covering approach) có thể được dùng để tạo ra các quy tắc phân biệt giữa ví dụ dương tính và âm tính. Tiếp theo, RIPPER trích xuất các quy tắc phân biệt y₂ từ các lớp còn lại. Quy trình này lặp lại cho đến khi chúng ta còn lại với y_c được chỉ định là lớp mặc định.
RIPPER dùng phương pháp từ tổng quát đến cụ thể (general-to-specific) để mở rộng một quy tắc và đo lường information gain của FOIL để chọn conjunct (liên hợp) tốt nhất được chèn vào tiền đề quy tắc (rule antecedent). Nó dừng chèn conjunct khi quy tắc bắt đầu bao phủ các thể hiện âm tính.
Quy tắc mới được cắt tỉa (pruned) tùy thuộc vào triển khai của nó trên tập xác thực. Thước đo sau được tính để quyết định xem có cần cắt tỉa không — (p-n)/(p+n), trong đó p(n) là số ví dụ dương tính (âm tính) trong tập xác thực được bao phủ bởi quy tắc.
Thước đo này đơn điệu liên quan đến độ chính xác của quy tắc trên tập xác thực. Nếu thước đo được cải thiện sau khi cắt tỉa, do đó conjunct bị loại bỏ. Cắt tỉa hoàn thành bắt đầu từ conjunct cuối cùng chèn vào quy tắc. Ví dụ, cho quy tắc ABCD → y, RIPPER kiểm tra xem D có nên cắt tỉa trước, theo sau là CD, BCD, v.v. Trong khi quy tắc ban đầu chỉ bao phủ thể hiện dương tính, quy tắc đã cắt tỉa có thể bao phủ một số thể hiện âm tính trong tập huấn luyện.
Sau khi tạo một quy tắc, một số thể hiện dương tính và âm tính được bao phủ bởi quy tắc bị loại bỏ. Quy tắc sau đó được thêm vào bộ quy tắc (ruleset) miễn là nó không vi phạm điều kiện dừng, dựa trên nguyên tắc độ dài mô tả tối thiểu (minimum description length principle).
Nếu quy tắc mới cải thiện tổng độ dài biểu diễn của bộ quy tắc bởi tối thiểu d bit, do đó RIPPER dừng chèn quy tắc vào bộ quy tắc của nó (mặc định, d được chọn là 64 bit). Điều kiện dừng khác được RIPPER dùng là tỷ lệ lỗi của quy tắc trên tập xác thực không được vượt quá 50%. RIPPER thực hiện thêm các bước tối ưu hóa để quyết định xem một số quy tắc hiện có trong bộ quy tắc có thể được thay thế bởi các quy tắc thay thế tốt hơn.