2010-02-21 41 views
9

Tôi muốn tạo một ứng dụng có thể thực hiện lập luận đơn giản bằng cách sử dụng logic đơn hàng đầu tiên. Bất cứ ai có thể đề nghị một "động cơ" có thể chấp nhận một số tùy ý của các biểu thức FOL, và cho phép truy vấn của những biểu thức (tốt nhất có thể truy cập thông qua Python)?Công cụ Logic đặt hàng đầu tiên

+4

Cảm ơn các đề xuất PyLog và Pythologic. Tuy nhiên, tôi đã quen thuộc với những điều này. Cho phép tôi làm rõ. Tôi đang tìm kiếm động cơ không đồ chơi. Cái gì đó có thể mở rộng, được sử dụng rộng rãi và dễ dàng tương tác với một cơ sở dữ liệu. Nó không phải là * được thực hiện * trong Python, chỉ có thể truy cập từ Python. – Cerin

Trả lời

5

PyLog:

PyLog là một trật tự đầu tiên Logic thư viện bao gồm một động cơ PROLOG bằng Python.

9

Không truy vấn sử dụng logic bậc nhất (FOL) trừ khi bạn hoàn toàn phải: logic bậc nhất không thể giải quyết được, nhưng chỉ bán được, và do đó truy vấn thường sẽ không thể chấm dứt.

Description logic về cơ bản là một đoạn decidable của logic bậc 1, được cải cách theo cách tốt để nói về các lớp của thực thể và mối quan hệ tương tác của chúng. Có nhiều công cụ cho logic mô tả bằng Python, ví dụ seth, dựa trên OWL-DL.

Nếu bạn thực sự chắc chắn rằng bạn cần sự bao la của FOL, thì FLiP đáng xem. Tôi đã không sử dụng nó (không thực sự quan tâm đến Python, phải trung thực), nhưng đây là một cách tiếp cận tốt để kiểm tra logic có sẵn cho một ngôn ngữ lập trình.

+1

Dường như cả Seth lẫn Flip đều không hoạt động. Seth sử dụng Pellet, dường như vẫn hoạt động, nhưng tôi đang tìm kiếm rất ít tài liệu về sử dụng trong thế giới thực cho các lý do OWL-DL nói chung. – Cerin

Các vấn đề liên quan