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¶
Total Nodes |
538 |
Total Edges |
1002 |
Root Nodes |
16 |
Leaf Nodes |
276 |
Classes |
84 |
Individuals |
0 |
Properties |
40 |
Maximum Depth |
13 |
Minimum Depth |
0 |
Average Depth |
4.21 |
Depth Variance |
6.56 |
Maximum Breadth |
54 |
Minimum Breadth |
1 |
Average Breadth |
19.79 |
Breadth Variance |
293.74 |
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