ProblogTheory

interface ProblogTheory : Theory

Represents a logic Theory suitable for the representation of probabilistic logic clauses using Problog's notation, in which the probability is annotated on clauses and facts. Instances of this interface must be immutable.

Every clause or fact asserted into a ProblogTheory -- e.g. 0.3::burglary. (an annotated fact), 0.9::alarm :- burglary, earthquake. (an annotated rule), a plain, un-annotated Prolog clause (implicitly treated as certain, i.e. probability 1.0), or an evidence/1/evidence/2 clause -- is transparently rewritten into an equivalent, plain Prolog-compliant clause carrying an extra "explanation" argument, so that a regular Prolog resolution engine (:solve-classic) can be reused to enumerate solutions; explanations are later compiled and weighted-model-counted to compute each solution's probability. it.unibo.tuprolog.solve.problog.ProblogSolverFactory uses this rewriting internally for every static/dynamic knowledge base it loads.

Author

Jason Dellaluce

Inheritors

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
abstract val clauses: Iterable<Clause>
Link copied to clipboard
Link copied to clipboard
abstract val isEmpty: Boolean
Link copied to clipboard
open override val isMutable: Boolean
Link copied to clipboard
abstract val isNonEmpty: Boolean
Link copied to clipboard
open val rules: Iterable<Rule>
Link copied to clipboard
abstract val size: Long
Link copied to clipboard
abstract val tags: Map<String, Any>
Link copied to clipboard
abstract val unificator: Unificator

Functions

Link copied to clipboard
abstract override fun abolish(indicator: Indicator): ProblogTheory
Link copied to clipboard
abstract override fun assertA(clause: Clause): ProblogTheory
open override fun assertA(struct: Struct): ProblogTheory
abstract override fun assertA(clauses: Iterable<Clause>): ProblogTheory
abstract override fun assertA(clauses: Sequence<Clause>): ProblogTheory
Link copied to clipboard
abstract override fun assertZ(clause: Clause): ProblogTheory
open override fun assertZ(struct: Struct): ProblogTheory
abstract override fun assertZ(clauses: Iterable<Clause>): ProblogTheory
abstract override fun assertZ(clauses: Sequence<Clause>): ProblogTheory
Link copied to clipboard
abstract fun clone(): Theory
Link copied to clipboard
abstract operator fun contains(clause: Clause): Boolean
abstract operator fun contains(indicator: Indicator): Boolean
abstract operator fun contains(head: Struct): Boolean
Link copied to clipboard
open fun containsTag(name: String): Boolean
Link copied to clipboard
abstract fun equals(other: Theory, useVarCompleteName: Boolean): Boolean
Link copied to clipboard
abstract operator fun get(clause: Clause): Sequence<Clause>
abstract operator fun get(indicator: Indicator): Sequence<Rule>
abstract operator fun get(head: Struct): Sequence<Rule>
Link copied to clipboard
open fun <T : Any> getTag(name: String): T?
Link copied to clipboard
abstract operator fun iterator(): Iterator<Clause>
Link copied to clipboard
open operator override fun plus(clause: Clause): ProblogTheory
abstract operator fun plus(theory: ProblogTheory): ProblogTheory
abstract operator override fun plus(theory: Theory): ProblogTheory
Link copied to clipboard
abstract fun replaceTags(tags: Map<String, Any>): Theory
Link copied to clipboard
abstract override fun retract(clause: Clause): RetractResult<ProblogTheory>
open override fun retract(head: Struct): RetractResult<ProblogTheory>
abstract override fun retract(clauses: Iterable<Clause>): RetractResult<ProblogTheory>
abstract override fun retract(clauses: Sequence<Clause>): RetractResult<ProblogTheory>
Link copied to clipboard
abstract override fun retractAll(clause: Clause): RetractResult<ProblogTheory>
open override fun retractAll(head: Struct): RetractResult<ProblogTheory>
Link copied to clipboard
abstract fun setUnificator(unificator: Unificator): Theory
Link copied to clipboard
open override fun toImmutableTheory(): ProblogTheory
Link copied to clipboard
abstract override fun toMutableTheory(): MutableProblogTheory
Link copied to clipboard
abstract fun toString(asPrologText: Boolean): String