Ontology là một thuật ngữ của triết học đã được sử dụng một cách rộng rãi trong lĩnh vực trí tuệ nhân tạo và đã có nhiều định nghĩa khác nhau về ontology ([1], [4], [15], [17], [20], [36]), trong đó định nghĩa của T. Gruber là được chấp nhận rộng rãi nhất. Theo T. Gruber ([15]), Ontology là một đặc tả hình thức về khái niệm. Các yêu cầu cho biểu diễn ontology là:
• Các khái niệm được dùng trong ontology và các ràng buộc giữa các khái niệm đó phải được định nghĩa một cách rõ ràng.
• Ontology phải là dạng thông tin sao cho máy có thể hiểu được.
• Thông tin biểu diễn trong ontology phải có tính phổ quát nghĩa là thông tin đó không chỉ cho một thành phần mà cần được chấp nhận bởi một nhóm các thành phần khác nhau.
Có thể nói, ontology xác định tập các thuật ngữ dùng để mô tả và biểu diễn các khái niệm dựa trên mối quan hệ qua lại (hoặc ràng buộc) giữa các khái niệm đó. Các khái niệm trong ontology giúp cho việc dùng chung và chia sẻ tri thức giữa hai miền tri thức khác nhau.
Khi sử dụng trong hệ đa agent, ontology là một cấu trúc ngữ nghĩa được tham chiếu trong quá trình truyền thông giữa các agent, giúp các agent, với các miền tri thức quan tâm khác nhau, có thể hiểu nhau trong quá trình trao đổi (thông qua việc hiểu các message mà nó nhận được).
Để minh hoạ cho định nghĩa trên, ta xem xét ví dụ trong Hình 4.1. Các khái niệm như UserRequest, HotelRequest, TrainRequest ... được biểu diễn dưới dạng các nút trong một đồ thị có hướng. Mỗi cạnh của đồ thị đều có nhãn biểu diễn mối quan hệ giữa các khái niệm trong đồ thị. Ở đây ta có ba mối quan hệ là SubClassOf (khái niệm này là lớp con của khái niệm kia), InstanceOf (khái niệm này là thể hiện của khái niệm kia) và HasA