3 ms·
> * what to do with a chain of reasoning if a previously asserted fact was retracted (i.e. when being questioned by the system, you realise that a previous answ
by j-pb 5y ago
> * what to do with a chain of reasoning if a previously asserted fact was retracted (i.e. when being questioned by the system, you realise that a previous answer was wrong)
Mixing up the concepts of "forgetting" (a monotonic operation that maintains a systems consistency at the cost of completeness), and "retraction"/"deleting" (a non-monotonic operation that requires truth maintenance and chooses completeness potentially at the cost of corectness (of the whole system)), is the billion dollar NULL mistake of the knowledge representation and database world.
- PaulHoule 5y agoMany symbolic A.I. programs (e.g. MYCIN) were based on production rules engines. Great progress has been made in rules engines since then, but production rules haven't gotten mainstream and I've long wondered why. Retraction is largely solved. Rules engines such as Drools and Clara use the RETE algorithm, hashtable/b-tree indexes, can match against millions of rules. These work particularly well for "complex event processing" where you could could gather up events (say from a rocket starting up or a financial trade) into compound events you code against. People who use this kind of tool http://www.hets.eu/ http://www.hets.eu/ would say their tools are much better and that the "logic" of production rules is a pale shadow of what SAT solvers, theorem provers, etc. can do. For ordinary "Business Rules", production rules engines compete against implementing the rules in ordinary code. http://inform7.com/book/WI_1_1.html http://inform7.com/book/WI_1_1.html is a toolkit for writing text adventure games in what looks like English. Just blasting through rules in order it uses defaults as a primary mechanism of control. Production Rules and logic compete with databases in the sense that a more expressive system won't scale as well (you want to fit in the L3 cache if not the RAM) RDFS and OWL implement limited-but-useful subsets that scale better than others. I've used production rules in data transformation one record at a time, they work well for this, but today I implement the same organizational principles in a set of Python functions that act on dicts. The production rules do https://en.wikipedia.org/wiki/Transitive_closure https://en.wikipedia.org/wiki/Transitive_closure idiomatically but in the limited cases where you need that you can look it up in an algorithm book. Production rules also are great for highly interactive systems. I have used production rules in the control plane for a distributed data processing system where the system compiled a description of a job into a set of rules. They are great for "internet-of-things" both because "IF-THIS-THEN-THAT" feels natural and the compound event capability. It seems that they'd even be an answer to the asynchronous communication problem in Javascript.
- HerrMonnezza 5y agoWhat literature/books would you recommend to know more about the subject to be able to apply it to practical programs?
- leeuw01 5y ago+1, I'm currently investigating rule-based systems at my job and I would love to understand the theory behind them better.