Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
ProbLog 2 is a Probabilistic Logic Programming toolbox. It allows to intuitively build programs that do not only encode complex interactions between a large sets of heterogenous components, but also the inherent uncertainties that are present in real-life situations.
Probabilistic logic programs are logic programs in which some of the facts are annotated with probabilities.
The engine tackles several tasks such as computing the marginals given evidence and learning from (partial) interpretations. ProbLog is a suite of efficient algorithms for various inference tasks. It is based on a conversion of the program and the queries and evidence to a weighted Boolean formula. This allows us to reduce the inference tasks to well-studied tasks such as weighted model counting, which can be solved using state-of-the-art methods known from the graphical model and knowledge compilation literature.
ProbLog is a Python package and can be embedded in Python or Java. Its knowledge base can be represented as Prolog/Datalog facts, CSV-files, SQLite database tables, through functions implemented in the host environment or combinations hereof.
ProbLog 2.1 works out of the box on systems with Python. It has been tested on Mac OSX, Linux and Windows.
ProbLog supports optional components which can be installed separately. See the file INSTALL for detailed installation instructions.
To install ProbLog, you can use the pip with the following command:
pip install problog
ProbLog 2.1 requires Python 3.6+. (Python 2.7+ support has been dropped since ProbLog 2.1.0.36.)
You can try out ProbLog without installing it with our online editor.
For example, enter the following ProbLog program for calculating the probability that at least one of two coins (one of which is a bend/biased coin) is head.
% Probabilistic facts:
0.5::heads1.
0.6::heads2.
% Rules:
someHeads :- heads1.
someHeads :- heads2.
% Queries:
query(someHeads).
When you press evaluate, this will result in 0.8, because P(someHeads) = 1 - (1-P(heads1)) (1-P(heads2)) = 1 - (1-0.5) (1-0.6) = 0.8.
To get started with ProbLog, follow the ProbLog Tutorial.
Visit the ProbLog Homepage.
Extensive documentation about ProbLog can be found on our ProbLog documentation on ReadTheDocs.
You can consult the following paper to get an introduction to ProbLog:
Inference and learning in probabilistic logic programs using weighted Boolean formulas, Daan Fierens, Guy Van den Broeck, Joris Renkens, Dimitar Shterionov, Bernd Gutmann, Ingo Thon, Gerda Janssens, and Luc De Raedt. Theory and Practice of Logic Programming, 2015.
ProbLog: A probabilistic Prolog and its application in link discovery, L. De Raedt, A. Kimmig, and H. Toivonen, Proceedings of the 20th International Joint Conference on Artificial Intelligence (IJCAI-07), Hyderabad, India, pages 2462-2467, 2007.
Many other papers and information about ProbLog can be found in our ProbLog publication list.
Copyright 2015 KU Leuven, DTAI Research Group
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
FAQs
ProbLog2: Probabilistic Logic Programming toolbox
We found that problog demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.