Chương trình được thết kế và thực thi trên môi trường ngôn ngữ lập trình Prolog. Giao diện được trình bày trong chương trình sử dụng giao diện dòng lệnh của Prolog. Phần cơ sở dữ liệu về nhận biết biển báo giao thông được xây dựng dựa trên các đặc điểm, hình dáng, đặc trưng của biển báo đó. Chẳng hạn, ta thấy rằng hầu hết các biển báo thường có các hình dáng như: hình tròn, hình tam giác, hình chữ nhật. Trong số đó có biển báo có đường viền bao quanh, một số khác thì không có. Phần nền và màu là phần phía trong biển, trên phần nền thường có một hình đặc trưng nào đó. Thông thường thì ý nghĩa của biển báo liên quan phần lớn ở hình đặc trưng này. Do đó, chỉ cần xác định được hình đặc trưng, chúng ta có thể dễ nhận biết sự khác biệt của biển báo đó so với biển khác.
Hai biển báo cấm người đi bộ và cấm xe mô tô sau là ví dụ:
biển báo cấm người đi bộ và cấm xe moto
Ta có thể biểu diễn sự khác nhau theo mệnh đề IF-THEN
IF
Hình của biển báo là hình tròn và Biển báo có đường viền và
Đường viền màu đỏ và
Hình đặc trưng là hình người và
Hình đặc trưng bị gạch chéo THEN
Biển báo là biển cấm người đi bộ IF
Hình của biển báo là hình tròn và Biển báo có đường viền và
Đường viền màu đỏ và
Hình đặc trưng là hình người lái xe moto và
Hình đặc trưng bị gạch chéo THEN
Biển báo là biển cấm cấm xe mô tô
Từ sự mô tả ở trên, chúng ta có thể dễ dàng triển khai trong ngôn ngữ lập trình Prolog như sau theo kiểu cặp đôi (Attribute-Value pairs), bằng cách suy diễn ngược lại tạo thành các luật để nhận biết một biển báo:
Bienbao( cam_nguoi_di_bo):- Bien_bao_hinh(tron), Bien_co(duong_vien), Duong_vien_mau(do), Hinh_dac_trung(hinh_nguoi), Tinh_trang_hinh(bi_gach_cheo). Bienbao( cam_xe_moto):-
Bien_bao_hinh(tron), Bien_co(duong_vien), Duong_vien_mau(do),
Hinh_dac_trung(nguoi_lai_xe_moto), Tinh_trang_hinh(bi_gach_cheo).
Với tập hợp nhiều biển báo được xây dựng như trên tạo nên thành phần cơ sở dữ liệu cho hệ thống. Ta được một chương trình như sau:
Trường hợp thành công
Trường hợp không thành công