Như ta đã biết có rất nhiều cách để tổ chức dữ liệu cho một hệ chuyên gia. Mỗi cách lại có những điểm mạnh và điểm yếu khác nhau. Với công nghệ truy xuất dữ liệu hiện đại ngày nay giúp tăng tốc và khả năng lưu trữ dữ liệu rất lớn. Nếu lượng dữ liệu là nhỏ thì tốc độ gần như không có sự khác biệt tuy nhiên khi lượng dữ liệu ngày càng lớn thì đó thực sự là một sự khác biệt hoàn toàn
Hơn nữa ứng dụng của ta xây dựng trên môi trường web bị hạn chế rất nhiều bởi tốc độ truyền mạng nên việc xây dựng và tổ chức dữ liệu thế nào giúp cho ứng dụng hoạt động liên tục càng được cân nhắc hơn cả.
Ta hãy xem xét các phương pháp lưu trữ cơ bản:
- Hướng thứ 1:Lưu trữ thông qua danh sách móc nối: tốc độ truy xuất rất nhanh, tuy nhiên cách lưu trữ không phù hợp với các mô hình dữ liệu hiện tại (sql server)mà cần phải có cách chuyển đổi tương ứng dẫn đến giảm hiệu năng của phương pháp này
- Hướng thứ 2: Các lưu trữ mảng, khó khăn trong việc liên kết dữ liệu tuy nhiên lại rất lại rất dễ thiết kế và cài đặt vào cơ sở dữ liệu
Phương pháp áp dụng trong hệ thống này ta đi theo hướng thứ 2 và tận dụng khả năng truy suất dữ liệu thông minh của LinQ để tạo sức mạnh cho mô tơ suy diễn này
Với phương pháp này ta sẽ tổ chức một luật từ tập các mệnh đề luật. Các mệnh đề luật này không có liên hệ trực tiếp với nhau mà tất cả đều chỉ
liên hệ với luật chủ thể của nó. Mỗi luật sẽ là một đánh giá trong thực tế. Vì số lượng đánh giá này là không nhiều nhưng số trường hợp có thể xẩy ra là rất đa dạng. Mục đích của ta là làm cho nhà đầu tư (người dùng hệ thống) tập trung vào các khả năng suy diễn hơn là từng mệnh đề lẻ vì vậy ta tách riêng ra một vùng lưu trữ dữ liệu cho thông tin về từng mệnh đề với các trường hợp có thể xẩy ra tương ứng với nó.
Mô hình cơ bản tổ chức dữ liệu trong hệ thống:
Hình 5-10 Thành phần chính cơ sở dữ liệu hệ thống
Chú thích: (các trường quan trọng trong bảng cơ sở dữ liệu) Bảng TblConcept: chứa thông tin đánh giá về thị trường gồm:
+ ID: khóa để đánh chỉ mục.
+ Name: tên hoặc từ gợi tả ý nghĩa của đánh giá đó
Bảng TblConceptValue: các trường hợp chi tiết của các đánh giá + ID: khóa để đánh chỉ mục
+ ConceptID: tham chiếu tới mệnh đề cần đánh giá
+ Description: mô tả ý nghĩa của từng mệnh đề đối với trường hợp xẩy ra
Bảng TblRule: chứa danh sách các luật dùng trong suy diễn của hệ thống
+ ID: khóa chỉ mục
+ ShortDescription: mô tả ngắn gọn về luật + Result: kết quả, lời tư vấn cho nhà đầu tư
+ Explain: giải thích tổng quan về suy diễn dẫn đến kết luận này Bảng TblRuleItem: là các thành tố tập hợp lên một suy diễn
+ ID: khóa chỉ mục
+ RuleID: tham chiếu tới luật sử dụng nó để suy diễn
+ ConceptValueID: tham chiếu tới đánh giá một mệnh đề suy diễn + Negative: phủ định của đánh giá tham chiếu bởi ConceptValueID (các giá trị mà không phải là đánh giá được tham chiếu đến)
+ Description: mô tả vai trò của đánh giá này trong luật suy diễn
Ta hãy xem ví dụ dưới đây để có cái nhìn cụ thể hơn về cách tổ chức lưu trữ tập luật:
Ví dụ:
Các giá trị tương ứng của mệnh đề 1: khi đánh giá chỉ số PE + Nhỏ hơn 10
+ Trong khoảng 10 đến 20 + Lớn hơn 20
Luật 4: đầu tư cổ phiếu khi có dấu hiệu thị trường ổn định Các đánh giá áp dụng trong luật 4:
+ Chỉ số PE thấp hơn 10 (đánh giá đầu tiên về PE) + Chỉ số PB trong khoảng 2-3
+ …..