Basic Formal Ontology (BFO)

The Basic Formal Ontology (BFO) is a small, upper-level ontology that describes the basic types of entities in the world and how they relate to each other. BFO provides a rigorous, domain-neutral framework for organizing and integrating domain ontologies across scientific and technical disciplines. It distinguishes between continuants (entities that persist through time, such as objects and qualities) and occurrents (entities that unfold over time, such as processes and events), supporting precise modeling of reality. BFO is widely adopted in the biomedical, engineering, and environmental sciences as the upper ontology for the Open Biomedical Ontologies (OBO) Foundry and other ontology initiatives. Its formal structure enables automated reasoning, semantic interoperability, and data integration across heterogeneous knowledge bases. BFO is actively maintained and extended by an international community of ontology experts and is recognized as an ISO standard (ISO/IEC 21838-2:2021).

Example Usage: Use BFO as the upper ontology for a biomedical ontology, classifying entities such as “cell” (object, continuant), “cell division” (process, occurrent), and “cell membrane” (object part), enabling semantic integration with other OBO ontologies.

Metrics & Statistics

Graph Statistics

Total Nodes

538

Total Edges

1002

Root Nodes

16

Leaf Nodes

276

Knowledge Coverage Statistics

Classes

84

Individuals

0

Properties

40

Hierarchical Metrics

Maximum Depth

13

Minimum Depth

0

Average Depth

4.21

Depth Variance

6.56

Breadth Metrics

Maximum Breadth

54

Minimum Breadth

1

Average Breadth

19.79

Breadth Variance

293.74

LLMs4OL Dataset Statistics

Term Types

0

Taxonomic Relations

66

Non-taxonomic Relations

5

Average Terms per Type

0.00

Usage Example

Use the following code to import this ontology programmatically:

from ontolearner.ontology import BFO

ontology = BFO()
ontology.load("path/to/BFO-ontology.owl")

# Extract datasets
data = ontology.extract()

# Access specific relations
term_types = data.term_typings
taxonomic_relations = data.type_taxonomies
non_taxonomic_relations = data.type_non_taxonomic_relations