Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Semantics  



1.1  Example  







2 Implementations  





3 ProbLog variants  





4 Related languages  





5 Further reading  





6 References  














ProbLog







Add links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


ProbLog
Original author(s)DTAI research lab (KU Leuven)
Initial releaseNovember 11, 2007 (2007-11-11)
Stable release

2.1

Written inPython
Operating systemLinux, Mac OS X, Microsoft Windows
TypeProbabilistic logic
License Apache License, Version 2.0
Websitedtai.cs.kuleuven.be/problog/

ProbLog is a probabilistic logic programming language that extends Prolog with probabilities.[1][2][3] It minimally extends Prolog by adding the notion of a probabilistic fact, which combines the idea of logical atoms and random variables. Similarly to Prolog, ProbLog can query an atom. While Prolog returns the truth value of the queried atom, ProbLog returns the probability of it being true.

Semantics[edit]

A probabilistic fact is a pair with aground atom and the probability of being true. A rule is defined by an atom , called the head, and a finite set of literals , called the body. ProbLog programs consist of a set of probabilistic facts and a set of rules . Using the distribution semantics, a probability distribution is defined over the two-valued well-founded models of the atoms in the program. The probability of a model is defined as where the product runs over all the literals in the model . For a query atom the distribution semantics defines a probability for the query in which the sum runs over all the models where is true.

ProbLog supports multiple tasks:

Example[edit]

ProbLog can for example be used to calculate the probability of getting wet given the probabilities for rain and the probabilities that someone brings an umbrella as follows:

0.4 :: rain(weekday).
0.9 :: rain(weekend).
0.8 :: umbrella_if_rainy(Day).
0.2 :: umbrella_if_dry(Day).

umbrella(Day) :- rain(Day), umbrella_if_rainy(Day).
umbrella(Day) :- \+rain(Day), umbrella_if_dry(Day).
wet(Day) :- rain(Day), \+umbrella(Day).

query(\+wet(weekend)).

The last rule before the query states that someone gets wet if it rains and no umbrella was brought. When ProbLog is asked to solve the "probabilistic inference" task, the query asks for the probability to stay dry on a weekend day. When solving the "most probable explanation" task, ProbLog will return the most likely reason for staying dry, i.e. because it is not raining or because the person has an umbrella.

Implementations[edit]

The ProbLog language has been implemented as a YAP Prolog library (ProbLog 1).[4] and as a stand-alone Python framework (ProbLog 2)[5] The source code of ProbLog 2 is licensed under Apache License, Version 2.0 and available on GitHub.[6] The ProbLog language has also been implemented as part of the cplint probabilistic logic programming package for SWI-Prolog, YAP and XSB.[7]

ProbLog variants[edit]

ProbLog has been extended or used as inspiration for several different variants, including:

Related languages[edit]

Further reading[edit]

References[edit]

  1. ^ De Raedt, Luc; Kimmig, Angelika; Toivonen, Hannu (November 2007). ProbLog: A Probabilistic Prolog and Its Application in Link Discovery. IJCAI. Vol. 7.
  • ^ Fierens, D; Van den Broeck, G.; Bruynooghe, M.; De Raedt, L. (2012). Constraints for probabilistic logic programming. Proceedings of the NIPS Probabilistic Programming Workshop. pp. 1–4.
  • ^ De Raedt, Luc; Kimmig, Angelika (2015). "Probabilistic (logic) programming concepts". Machine Learning. 100 (1): 5–47. doi:10.1007/s10994-015-5494-z. S2CID 3166992.
  • ^ "ProbLog1". dtai.cs.kuleuven.be.
  • ^ a b "ProbLog: Probabilistic Programming". dtai.cs.kuleuven.be.
  • ^ a b "ProbLog GitHub repository". github.com. 12 October 2022.
  • ^ "cplint – AI@UNIFE". Retrieved 2023-11-13.
  • ^ Manhaeve, Robin; Dumancic, Sebastijan; Kimmig, Angelika; Demeester, Thomas; De Raedt, Luc (2018). DeepProbLog: Neural Probabilistic Logic Programming. NeurIPS 2018, Thirty-second Conference on Neural Information Processing Systems. pp. 3753–3760.
  • ^ Van den Broeck, Guy; Thon, Ingo; Van Otterlo, Martijn; De Raedt, Luc (2010). "DTProbLog: A decision-theoretic probabilistic Prolog". Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 24.
  • ^ Kimmig, A.; Van den Broeck, G.; De Raedt, L. (2011). An algebraic Prolog for reasoning about possible worlds. Proceedings of the Twenty-Fifth AAAI Conference on Artificial Intelligence. pp. 209–214.
  • ^ "PRISM: PRogramming In Statistical Modeling". rjida.meijo-u.ac.jp.
  • ^ Poole, David (2008). "The independent choice logic and beyond". In Luc Raedt; Paolo Frasconi; Kristian Kersting; Stephen Muggleton (eds.). Probabilistic Inductive Logic Programming. Lecture Notes in Computer Science. Vol. 4911. Springer. pp. 222–243. doi:10.1007/978-3-540-78652-8_8. ISBN 978-3-540-78651-1.
  • ^ Vennekens, Joost; Denecker, Marc; Bruynooghe, Maurice (2009). CP-logic: A language of causal probabilistic events and its relation to logic programming. Theory and practice of logic programming. Vol. 9. pp. 245–308. arXiv:0904.1672.
  • ^ "PITA: Probabilistic Inference with Tabling and Answer subsumption". ml.unife.it.
  • ^ "Distributional Clauses". dtai.cs.kuleuven.be.
  • ^ "ProbLog: ProbLog 2.1 documentation". problog.readthedocs.io.

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=ProbLog&oldid=1231437938"

    Categories: 
    Probabilistic software
    Programming paradigms
    Nondeterministic programming languages
    Computational statistics
    Python (programming language) scientific libraries
    Logic programming languages
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
     



    This page was last edited on 28 June 2024, at 08:11 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki