task_categories:graph-ml annotations_creators:expert-generated size_categories:100K<n<1M language:en license:mit knowledge-graph rdf owl ontology region:us
---
language:
- en
license: mit
tags:
- knowledge-graph
- rdf
- owl
- ontology
annotations_creators:
- expert-generated
pretty_name: FIBO
size_categories:
- 100K<n<1M
task_categories:
- graph-ml
dataset_info:
  features:
    - name: subject
      dtype: string
    - name: predicate
      dtype: string
    - name: object
      dtype: string
  config_name: default
  splits:
    - name: train
      num_bytes: 56045523
      num_examples: 236579
  dataset_size: 56045523
viewer: false
---

# FIBO: The Financial Industry Business Ontology

### Overview
In the world of financial technology, the vastness of data and the
complexity of financial instruments present both challenges and
opportunities. The Financial Industry Business Ontology (FIBO) offers
a structured framework that bridges the gap between theoretical
financial concepts and real-world data. I believe machine learning
researchers interested in the financial sector could use the
relationships in FIBO to innovate in financial feature engineering to
fine-tune existing models or build new ones.

#### Open Source
The FIBO ontology is developed on GitHub at
https://github.com/edmcouncil/fibo/.

### Use-cases
- Comprehensive Data Structure: FIBO offers a broad spectrum of
  financial concepts, ranging from derivatives to securities. This
  design, rooted in expert knowledge from both the knowledge
  representation and financial sectors, ensures a profound
  understanding of financial instruments.
- Decoding Complex Relationships: The financial domain is
  characterized by its intricate interdependencies. FIBO's structured
  approach provides clarity on these relationships, enabling machine
  learning algorithms to identify patterns and correlations within
  large datasets.
- Linkage with Real-world Data: A distinguishing feature of FIBO is
  its capability to associate financial concepts with real-world
  financial data and controlled vocabularies. This connection is
  crucial for researchers aiming to apply theoretical insights in
  practical contexts in financial enterprises with their existing
  data.
- Retrieval Augmented Generation: The advent of Large Language Models,
  particularly in conjunction with Retrieval Augmented Generation
  (RAG), holds promise for revolutionizing the way financial data is
  processed and interpreted.
- Document Classification: With the surge in financial documents,
  utilizing RAG to categorize financial datasets classifed by FIBO
  concepts can assist financial analysts in achieving enhanced
  accuracy and depth in data interpretation, facilitated by
  intelligent prompting.

#### Building and Verification:
1. **Construction**: The ontology was imported from
   [AboutFIBOProd-IncludingReferenceData](https://github.com/edmcouncil/fibo/blob/master/AboutFIBOProd-IncludingReferenceData.rdf)
   into Protege version 5.6.1.
2. **Reasoning**: Due to the large size of the ontology I used the ELK
   reasoner plugin to materialize (make explicit) inferences in the
   ontology.
3. **Coherence Check**: The Debug Ontology plugin in Protege was used
   to ensure the ontology's coherence and consistency.
4. **Export**: After verification, inferred axioms, along with
   asserted axioms and annotations, were [exported using Protege](https://www.michaeldebellis.com/post/export-inferred-axioms).
5. **Encoding and Compression**: [Apache Jena's
   riot](https://jena.apache.org/documentation/tools/) was used to convert the
   result to ntriples, which was then compressed with gzip. This
   compressed artifact is downloaded and extracted by the Hugging Face
   datasets library to yield the examples in the dataset.

### Usage
First make sure you have the requirements installed:

```python
pip install datasets
pip install rdflib
```

You can load the dataset using the Hugging Face Datasets library with the following Python code:

```python
from datasets import load_dataset
dataset = load_dataset('wikipunk/fibo2023Q3', split='train')
```

## Features
The FIBO dataset is composed of triples representing the relationships
between different financial concepts and named individuals such as
market participants, corporations, and contractual agents. 

#### Note on Format:
The subject, predicate, and object features are stored in N3 notation
with no prefix mappings. This allows users to parse each component
using `rdflib.util.from_n3` from the RDFLib Python library.

### 1. **Subject** (`string`)
The subject of a triple is the primary entity or focus of the statement. In this dataset, the subject often represents a specific financial instrument or entity. For instance:
`<https://spec.edmcouncil.org/fibo/ontology/SEC/Equities/EquitiesExampleIndividuals/XNYSListedTheCoca-ColaCompanyCommonStock>`
refers to the common stock of The Coca-Cola Company that is listed on
the NYSE.

### 2. **Predicate** (`string`)
The predicate of a triple indicates the nature of the relationship between the subject and the object. It describes a specific property, characteristic, or connection of the subject. In our example:
`<https://spec.edmcouncil.org/fibo/ontology/SEC/Securities/SecuritiesListings/isTradedOn>`
signifies that the financial instrument (subject) is traded on a
particular exchange (object).

### 3. **Object** (`string`)
The object of a triple is the entity or value that is associated with the subject via the predicate. It can be another financial concept, a trading platform, or any other related entity. In the context of our example:
`<https://spec.edmcouncil.org/fibo/ontology/FBC/FunctionalEntities/NorthAmericanEntities/USMarketsAndExchangesIndividuals/NewYorkStockExchange>`
represents the New York Stock Exchange where the aforementioned
Coca-Cola common stock is traded.

#### Continued
Here is an another example of a triple in the dataset:
- Subject: `"<https://spec.edmcouncil.org/fibo/ontology/FBC/FunctionalEntities/MarketsIndividuals/ServiceProvider-L-JEUVK5RWVJEN8W0C9M24>"` 
- Predicate: `"<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>`
- Object: `"<https://spec.edmcouncil.org/fibo/ontology/BE/FunctionalEntities/FunctionalEntities/FunctionalEntity>"`

This triple represents the statement that the market individual
[ServiceProvider-L-JEUVK5RWVJEN8W0C9M24](https://spec.edmcouncil.org/fibo/ontology/FBC/FunctionalEntities/MarketsIndividuals/ServiceProvider-L-JEUVK5RWVJEN8W0C9M24)
has a type of
[FunctionalEntity](https://spec.edmcouncil.org/fibo/ontology/BE/FunctionalEntities/FunctionalEntities/FunctionalEntity).

#### Note:
The dataset contains example individuals from the ontology as
reference points. These examples provide a structured framework for
understanding the relationships and entities within the financial
domain. However, the individuals included are not exhaustive. With
advancements in Large Language Models, especially Retrieval Augmented
Generation (RAG), there's potential to generate and expand upon these
examples, enriching the dataset with more structured data and
insights.

### FIBO Viewer
Use the [FIBO Viewer](https://spec.edmcouncil.org/fibo/ontology) to
explore the ontology on the web. One of the coolest features about
FIBO is that entities with a prefix of
https://spec.edmcouncil.org/fibo/ontology/ can be looked up in the web
just by opening its URL in a browser or in any HTTP client.

## Ideas for Deriving Graph Neural Network Features from FIBO:
Graph Neural Networks (GNNs) have emerged as a powerful tool for
machine learning on structured data. FIBO, with its structured
ontology, can be leveraged to derive features for GNNs.

### Node Features:

- **rdf:type**: Each entity in FIBO has one or more associated `rdf:type`,
  `<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>`, that
  indicates its class or category. This can serve as a primary node
  feature to encode.
  
- **Entity Attributes**: Attributes of each entity, such as names or
  descriptions, can be used as additional node features. Consider
  embedding descriptions using a semantic text embedding model.

### Edge Features:

- **RDF Predicates**: The relationships between entities in FIBO are
  represented using RDF predicates. These predicates can serve as edge
  features in a GNN, capturing the nature of the relationship between
  nodes.

### Potential Applications:

1. **Entity Classification**: Using the derived node and edge
   features, GNNs can classify entities into various financial
   categories, enhancing the granularity of financial data analysis.

2. **Relationship Prediction**: GNNs can predict potential
   relationships between entities, aiding in the discovery of hidden
   patterns or correlations within the financial data.

3. **Anomaly Detection**: By training GNNs on the structured data from
   FIBO and interlinked financial datasets, anomalies or
   irregularities in them may be detected, ensuring data integrity and
   accuracy.

### Acknowledgements
We extend our sincere gratitude to the FIBO contributors for their
meticulous efforts in knowledge representation. Their expertise and
dedication have been instrumental in shaping a comprehensive and
insightful framework that serves as a cornerstone for innovation in
the financial industry.

If you are interested in modeling the financial industry you should
consider [contributing to
FIBO](https://github.com/edmcouncil/fibo/blob/master/CONTRIBUTING.md).

### Citation
```bibtex
@misc{fibo2023Q3,
  title={Financial Industry Business Ontology (FIBO)},
  author={Object Management Group, Inc. and EDM Council, Inc. and Various Contributors},
  year={2023},
  note={Available as OWL 2 ontologies and UML models compliant with the Semantics for Information Modeling and Federation (SMIF) draft specification. Contributions are open on GitHub, consult the repository for a list of contributors.},
  howpublished={\url{https://spec.edmcouncil.org/fibo/}},
  abstract={The Financial Industry Business Ontology (FIBO) is a collaborative effort to standardize the language used to define the terms, conditions, and characteristics of financial instruments; the legal and relationship structure of business entities; the content and time dimensions of market data; and the legal obligations and process aspects of corporate actions.},
  license={MIT License, \url{https://opensource.org/licenses/MIT}}
}
```
