Visualising FIBO
In most cases when working with or designing an ontology I like to be able to visualise the model. When designing an ontology from scratch I typically draw out the model on a whiteboard or directly into a drawing tool, for example LucidChart (my current favourite) or OmniGraffle. This approach lets us rapidly iterate the model visually before getting our hands dirty with OWL and RDF. It also allows us to collaborate on the model in a much more effective way, and engage domain experts whom might not be familiar with RDF.
While researching public domain models for a recent project, I explored FIBO, the Financial Industry Business Ontology. FIBO is a suite of building block ontologies engineered by the Enterprise Data Management Council to
“standardize the language used to precisely 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.”
The FIBO v1.0 ontologies currently consist of a set of foundation models and a set of models describing the characteristics of business entities. Future FIBO ontologies (yet to be published by EDM) will model the domain of financial instruments and indexes.
While the FIBO ontologies are well defined and the RDFS/OWL definitions are available for download, there is little in the way of visualisation for consumers and developers with respect to how the ontologies work together. So it made sense for me to create visualisations of the models to aid my own evaluation. The first models I have visualised are the Person domain model, and the Organization domain model. In these visualisations the symbology used is as follows :
- Rectangles = RDFS Datatypes (FIBO defined and XSD datatypes)
- Hexagons = Predicates
- Ovals = Classes
Many of the foundation predicates from the FIBO Relations ontology are specified without formal RDFS domains and ranges in order to enable re-use. Their usages within each more specific domain ontology are then defined using local OWL Restrictions on classes. On the diagrams I have indicated these as virtual domains and ranges of the predicates, clearly distinct from the explicit rdfs:domain and rdfs:range predicate definitions that can be reasoned upon.
The name prefixes displayed follow the FIBO prefix convention and reference each FIBO ontology as follows :
prefix | namespace |
---|---|
fibo-fnd-rel-rel | http://www.omg.org/spec/EDMC-FIBO/FND/Relations/Relations/ |
fibo-fnd-utl-bt | http://www.omg.org/spec/EDMC-FIBO/FND/Utilities/BusinessFacingTypes/ |
fibo-fnd-aap-agt | http://www.omg.org/spec/EDMC-FIBO/FND/AgentsAndPeople/Agents/ |
fibo-fnd-gao-gl | http://www.omg.org/spec/EDMC-FIBO/FND/GoalsAndObjectives/Goals/ |
fibo-fnd-plc-cty | http://www.omg.org/spec/EDMC-FIBO/FND/Places/Countries/ |
fibo-fnd-aap-ppl | http://www.omg.org/spec/EDMC-FIBO/FND/AgentsAndPeople/People/ |
fibo-be-le-lp | http://www.omg.org/spec/EDMC-FIBO/BE/LegalEntities/LegalPersons/ |
fibo-fnd-pty-pty | http://www.omg.org/spec/EDMC-FIBO/FND/Parties/Parties/ |
fibo-fnd-pty-rl | http://www.omg.org/spec/EDMC-FIBO/FND/Parties/Roles/ |
fibo-fnd-org-org | http://www.omg.org/spec/EDMC-FIBO/FND/Organizations/Organizations/ |
fibo-fnd-org-fm | http://www.omg.org/spec/EDMC-FIBO/FND/Organizations/FormalOrganizations/ |
fibo-fnd-org-lg | http://www.omg.org/spec/EDMC-FIBO/FND/Organizations/LegitimateOrganizations/ |
fibo-be-le-fbo | http://www.omg.org/spec/EDMC-FIBO/BE/LegalEntities/FormalBusinessOrganizations/ |
The first ontology tackled is the Person domain model and is visualised below :
The next ontology visualised is the Organization domain model as follows :
I hope these visualisations are helpful. Both images can be seen in full resolution if opened in a new browser tab, or downloaded.
In a future post I hope to tackle visualisations for Functional Business Entities, Contracts, Accounting Equity and the Legal domains once these models are released.