From: Pit Capitain Date: 2005-07-06T05:43:05+09:00 Subject: Re: [SOLUTION] Inference Engine (#37) --------------020002050208070100090908 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Here's my solution. Note that I hadn't enough time to comment it, and the implementation isn't as understandable as I'd like. Only to test whether it's possible, I chose irb for the user interface. After loading the file, you can enter facts and queries in plain text: irb(main):001:0> require "ie" => true irb(main):002:0> all mammals are hairy animals => OK. irb(main):003:0> all dogs are mammals => OK. irb(main):004:0> are all dogs hairy animals? => Yes, all dogs are hairy animals. irb(main):005:0> describe dogs => All dogs are hairy animals. All dogs are mammals. irb(main):006:0> If you want to try it, note that you aren't allowed to enter dots (".") after facts and that you have to enter question marks ("?") after queries. Regards, Pit --------------020002050208070100090908 Content-Type: application/x-zip-compressed; name="ie.zip" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="ie.zip" UEsDBBQAAAAIALCz5TKR8s7HyQUAALkVAAAFAAAAaWUucmKlWG1PIzcQ/s6v8C3omqDV0oRv J1JoJT6gVod0qJUqoNGS9SZ7bOzUdsqlJP+9M35Z25tsyFFQiNcz88yM57F3zNGcF8uakptr Qr8pygoiaV0eHRHy5fffru/IiLzCmJB7kqiyTMgjGf0EQ6WStJlXfr4M50E/jc30DIhKpUWl t9QzbcsAWFlLtWWpIksMbDvUwCc+785CtX2WKvIZWJbWcoMLdcXyOZUpuZJUSVywTQoflBS0 JJQpKsZ5XfcI6g1S/TUkfe1YSxtJgg61GFPUeSZaEeoS4zH+vXBqH5zkc/ouQLUHEIJU70q6 A7SxWHA5aEzgAf7+k9cWfJJLChxWh2m/zCgjSiypfiIkuf01S7ykzGvZiO64EKuUqFmuyIQz JfKimkDFX3DihuS1oHmxIs+Mv4QYrKodwk0oxPSiJP9eUrHqZIqW7lm0zxwmuIIwanzEz5/I SnxuL6fx1MGhPY6Uc4Tljbww3uEkZ6t3edGooRuTX7eXTra9tXCRJ3RhnXUu3D5mIZXGcznF WM23phAOQ35O9/EzpCaE68hz/OrAN+T4VRtvSC4ojHk4O9yE7IMcPUATS4yw0zCibcHZD2ov eQsqJ6J6cqeIzUFQuawVnIn3j/q5KjUIu4zVACmfzMYvlZrxpWpk4JasdWRrq0Zw6w4AL1zA VkkbTK083KesQmWIzYCPgkULkri4sEkuVMVZjyQ/653mcJOYdTqpWhrQ4eGgn/mbmDSACYNW IX63hztDdefDML7txlU49jP8H37edOLHbhTk6p0smWZQTCBnYdQyyYXaRU8b2kLQsvo2aGIz z8M4QNguVq+93ax6a7+ZEKw7uagr4NwLF4V02xnH4Ex/D/WWsA9avGSqqq0wo/OFWl3a1I0h pm6lclaVygptBibwkdXNvvIKKwC/fecwnLO2UNCqGKTmG61bWzONJnzhnuA992wZAQCECwsR laJiehJgQfODVVX6ZNHwZnN8sM4bwbABuI+SS33hHXKfPMZFzouiR05R3S26Hmd4uDRniTtK lqymUkYpBtS80pYmBOz5wh6B+PYiOE/c6yQ4gBoetw/LHU6Nw2yWy/EzXYWywC7ivuNpeDoT eBGqWcWmJH+Ck9QyFAiKRcBhjHdwmwTWKMdSo8jmx+uidbp2vcs0Aqhn8FZxvCamXhGDfQEW ywNDw5/JLGdTWhxuEFTT8BBT+TBCrUYn7P06K3lwmFBU3GF0T/fgmIDXiHttgMQzIQUuD1nv 93lrkfQA607xKF6HQM8xcUguzLRhsTtiU+AsqumB1nNTw00SB/hdVde3WX8SCLjzQos3wReC OxEmMzp5fgMtJaFlw6jAdFfO3aZbhHp3ELCsiV06u1zHr6C7SfCdjfr35Efy6HcjTmWy+pei fOD3HRUlF/N4X27lG3UhO3q3Zj83x+65b+F2Ozn3TjC8ea4ms2ZFrYJJYwD7ImiIttuG9pru CXCEfW58BAPvO14Zq4rCMYEzjsR4Zmg88vFjNDHcHUmQlV9bzMqGYOrtuTuyZTLtxNmZVdOi Q07e8KQ6oLDb7o14K4ADXxzWvY1gCXePSjwdaYSTP66//HJ7d20qYOZun77SCXRvYNYjn8Ck YnBboVC3IiWfzGA8r6TEF5ynVkpOczGVrkq6DKYKmeJjmRXwysRbl5XXgGq6ErSyvZZvQDS3 3XmEPR5qwS7yPNM3OESxz/q6dPYXXiFJLzvt6ysV43p81vD05jpr/2vkBNbtxL/0LE4PLp5r xteo1/eAW2hmmRIDevx6MtgkCAef8zYk2kNnYMBsZA+XEVrrHr07NB2HDQ9U+1tArlim8YW7 goH10RkmNfoxF6kQ0GCMdHLbDTT+GI312ufvPMbHThy2u5tur6G/tZ5Aw+t65AcG0qCNCw+7 oO7heaMHd0oAMx1/oUeFZq6hb8XkAtgNIyQlgPv9YTeGa0knsMJUZFNBF7DlHs5A9IA7z10L jrTZf1BLAQIUABQAAAAIALCz5TKR8s7HyQUAALkVAAAFAAAAAAAAAAEAIAC2gQAAAABpZS5y YlBLBQYAAAAAAQABADMAAADsBQAAAAA= --------------020002050208070100090908--