Skip to content

BOOMER

BOOMER (Bayesian OWL Ontology MErgER) is a probabilistic reasoning system for knowledge representation and ontological reasoning with uncertainty.

Overview

BOOMER enables reasoning over probabilistic facts and taxonomic relationships, finding the most likely consistent interpretation of potentially conflicting assertions. It uses a combination of graph-based reasoning and Bayesian probabilistic inference.

BOOMER Logo

Key Features

  • Probabilistic Knowledge Representation: Express uncertainty in your knowledge base with probabilities
  • Logical Consistency: Find the most probable consistent interpretation of competing assertions
  • Ontology Alignment: Map terms across different ontologies or taxonomies with confidence scores
  • Graph-based Reasoning: Efficient reasoning over hierarchical structures
  • Command-line Interface: Easy to use CLI for processing input files
  • Python API: Programmatic access for integration into your workflows

Use Cases

BOOMER is designed for:

  • Ontology Alignment: Mapping terms between different ontologies (e.g., MONDO to ICD10)
  • Disease Classification: Relating disease terms across different medical coding systems
  • Entity Resolution: Determining when entities from different sources refer to the same concept
  • Scientific Knowledge Integration: Combining knowledge from multiple sources with different confidences

Quick Example

from boomer.io import ptable_to_kb
from boomer.search import solve

# Create a KB from a probability table
with open("path/to/mapping.ptable.tsv") as f:
    kb = ptable_to_kb(f)

# Solve to find most probable consistent solution
solution = solve(kb)

# Analyze high-confidence results
for spf in solution.solved_pfacts:
    if spf.truth_value and spf.posterior_prob > 0.8:
        print(f"High confidence: {spf.pfact.fact} (posterior: {spf.posterior_prob})")

Command Line Usage

# Process a mapping file
boomer-cli solve mapping.ptable.tsv

# Save results in different formats
boomer-cli solve mapping.ptable.tsv -O json -o solution.json
boomer-cli solve mapping.ptable.tsv -O tsv -o solution.tsv

# Use built-in datasets
boomer-cli solve boomer.datasets.animals

Installation

For Users

Once BOOMER is published to PyPI:

# Install with pip
pip install boomer

# Or use uvx for isolated execution
uvx boomer-cli solve input.ptable.tsv

For Developers

Developers should use the modern uv workflow:

# Clone the repository
git clone https://github.com/cmungall/boomer-py.git
cd boomer-py

# Set up development environment
uv sync

# Run during development
uv run boomer-cli --help
uv run pytest  # Run tests

Documentation

Getting Started

Core Concepts

  • Data Model - Understanding BOOMER's knowledge representation
  • Reasoning - How BOOMER performs probabilistic reasoning
  • Search - The search algorithm for finding optimal solutions
  • Partitioning - How BOOMER partitions KBs into cliques for efficiency

Advanced Topics

License

[Add license information here]