An Engine for Computing Well-Founded Models
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.
Unable to display preview. Download preview PDF.
- 1.Costa, J., Rocha, R.: One table fits all. In: PADL, pp. 195–208 (2009)Google Scholar
- 2.Cui, B., Swift, T., Warren, D.S.: From tabling to transformation: Implementing non-ground residual programs. In: Implementations of Declarative Languages (1999)Google Scholar
- 3.Johnson, E., Ramakrishnan, C.R., Ramakrishnan, I.V., Rao, P.: A space-efficient engine for subsumption based tabled evaluation of logic programs. In: 4th International Symposium on Functional and Logic Programming (1999)Google Scholar
- 4.Liang, S., Fodor, P., Wan, H., Kifer, M.: OpenRuleBench: An analysis of the performance of rule engines. In: WWW: Semantic Data Track (2009)Google Scholar