Extending programming languages with stochastic behaviour such as probabilistic choices or random sampling has a long tradition in computer science. A recent development in this direction is a declarative probabilistic programming language, proposed by Barany et al. in 2017, which operates on standard relational databases. In particular, Barany et al. proposed generative Datalog, a probabilistic extension of Datalog that allows sampling from discrete probability distributions. Intuitively, the output of a generative Datalog program P on an input database D is a probability space over the minimal models of D and P, the so-called possible outcomes. This is a natural generalization of the (deterministic) semantics of Datalog, where the output of a program on a database is their unique minimal model. A natural question to ask is how generative Datalog can be enriched with the useful feature of negation, which in turn leads to a strictly more expressive declarative probabilistic programming language. In particular, the challenging question is how the probabilistic semantics of generative Datalog with negation can be robustly defined. Our goal is to provide an answer to this question by interpreting negation according to the stable model semantics.
翻译:扩展编程语言,包括概率选择或随机抽样等随机行为,在计算机科学方面有着悠久的传统。最近这方面的发展是Barany等人于2017年提出的一种宣示性概率编程语言,在标准关系数据库中运作。特别是,Barany等人提议了基因化Datalog,这是数据log的概率扩展,允许从离散概率分布中取样。直觉来看,输入数据库D上的基因化数据程序P的输出是D和P最低模型的概率空间,即所谓的可能结果。这是数据log(非定义)语义的自然概括,其中数据库中的程序输出是它们唯一的最低限度模型。要问的一个自然问题是,如何用否定的有用特征来丰富基因化数据log,而这又反过来又导致一种更直截了当的宣告性概率性概率编程语言。特别是,具有挑战性的问题是,如何使带有模式否定的基因化数据解析的拼写性词具有稳健性。我们的目标是通过稳定地解释这个定义一个问题。