Metadata-Version: 2.1
Name: Tyche
Version: 0.1.1
Summary: Tyche is a library to facilitate the use of aleatoric description logic to construct, query, and update probabilistic belief models.
Home-page: https://github.com/TycheLibrary/Tyche
Author: Paddy Lamont
Author-email: padraiglamont@gmail.com
License: MIT License
Keywords: probability,belief,knowledge-base,ontology,description-logic
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: scipy

<p align="center">
  <img src="https://raw.githubusercontent.com/TycheLibrary/Tyche/master/docs/banner.png" alt="Tyche Logo" height="200" width="480" />
</p>

Tyche is a Python library to support the representation of, and the reasoning about, aleatoric information.
Aleatoric information is information that can be modelled by a roll of the dice. It is information
that has a probability of truth for each time it is sampled. For example, every text message that
people send _may_ include emojis, with a different probability for each individual that sent the message.
Tyche provides functionality to reason about this aleatoric information using aleatoric description logic.
This allows the probability of truth of logical statements to be efficiently queried, and allows the
probability of the tendencies of individuals to be learnt through observation.

Tyche provides its main functionality through its `tyche.individuals` module, which facilitates the
construction of ontological knowledge basea with probabilistic beliefs. This allows the simple
representation of individuals, the probabilistic beliefs about them (termed concepts), and the
probabilistic relationships between them (termed roles). Aleatoric description logic sentences
may then be constructed using the `tyche.language` model to be used to query a knowledge base
for a probability, or to be used as an observation to update a knowledge base. This allows
fine-grained modelling of probabilistic belief systems, with a rigorous mathematical foundation.

**Related Publications:**
- Aleatoric Description Logic for Probabilistic Reasoning: [arXiv link](https://arxiv.org/abs/2108.13036)
- A modal aleatoric calculus for probabilistic reasoning: [arXiv link](https://arxiv.org/abs/1812.11741)


## Structure

The *tyche* package consists of the following main modules:
- **language**. This is the aleatoric description logic language module for representing sentences. The language
  module also contains the representation used for the value of roles.
- **individuals**. This is the ontological knowledge base individuals module for representing ontologies of
  individuals, the probabilistic beliefs about them (concepts), and the probabilistic relationships between
  them (roles). The individuals module also contains classes and functions that may be used to learn from
  aleatoric description logic observations.
- **distributions**. This module contains utility classes for representing and manipulating probability
  distributions. These distributions may be used to convert continuous quantities into probabilities,
  and to learn the probability distributions from aleatoric description logic observations.

The Tyche project also consists of the package *test* that contains unit tests for the functionality of
Tyche, and the package *examples* that contains example uses of Tyche.

## License

Tyche is licensed under the [MIT License](/LICENSE).
