Hostname: page-component-7b7567c8c-lpg2g Total loading time: 0 Render date: 2026-11-15T20:32:33.848Z Has data issue: false hasContentIssue false

Products of weighted logic programs

Published online by Cambridge University Press:  28 January 2011

SHAY B. COHEN
Affiliation:
School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA (e-mail: scohen@cs.cmu.edu, rjsimmon@cs.cmu.edu, nasmith@cs.cmu.edu)
ROBERT J. SIMMONS
Affiliation:
School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA (e-mail: scohen@cs.cmu.edu, rjsimmon@cs.cmu.edu, nasmith@cs.cmu.edu)
NOAH A. SMITH
Affiliation:
School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA (e-mail: scohen@cs.cmu.edu, rjsimmon@cs.cmu.edu, nasmith@cs.cmu.edu)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Weighted logic programming, a generalization of bottom-up logic programming, is a well-suited framework for specifying dynamic programming algorithms. In this setting, proofs correspond to the algorithm's output space, such as a path through a graph or a grammatical derivation, and are given a real-valued score (often interpreted as a probability) that depends on the real weights of the base axioms used in the proof. The desired output is a function over all possible proofs, such as a sum of scores or an optimal score. We describe the product transformation, which can merge two weighted logic programs into a new one. The resulting program optimizes a product of proof scores from the original programs, constituting a scoring function known in machine learning as a “product of experts.” Through the addition of intuitive constraining side conditions, we show that several important dynamic programming algorithms can be derived by applying product to weighted logic programs corresponding to simpler weighted logic programs. In addition, we show how the computation of Kullback–Leibler divergence, an information-theoretic measure, can be interpreted using product.