A Space Efficient Engine for Subsumption-Based Tabled Evaluation of Logic Programs
FLOPS '99 Proceedings of the 4th Fuji International Symposium on Functional and Logic Programming
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
OpenRuleBench: an analysis of the performance of rule engines
Proceedings of the 18th international conference on World wide web
Xsb: Extending prolog with tabled logic programming
Theory and Practice of Logic Programming - Prolog Systems
Constraint Propagation for First-Order Logic and Inductive Definitions
ACM Transactions on Computational Logic (TOCL)
Hi-index | 0.00 |
The seemingly simple choice of whether to use call variance or call subsumption in a tabled evaluation deeply affects an evaluation's properties. Most tabling implementations have supported only call variance or, in the case of XSB Prolog, supported call subsumption only for stratified programs. However, call subsumption has proven critical for (sub-)model generation as required for some kinds of program analysis (e.g. type analysis) and for semantic web applications such as RDF inference. At the same time, the lack of well-founded negation has prevented the use of call subsumption in producing residual programs, and has limited its use in semantic web applications that require negation (e.g. evaluation of OWL ontologies). This paper describes an engine for evaluating normal programs under the well-founded semantics (WFS) in which the evaluation method can be based on a mixture of call subsumption and call variance, chosen at the predicate level. The implementation has been thoroughly tested for both local and batched evaluation and is available in version 3.2 of XSB.