Giter Site home page Giter Site logo

edmcouncil / fibo Goto Github PK

View Code? Open in Web Editor NEW
308.0 308.0 66.0 435.95 MB

The Financial Industry Business Ontology (FIBO) defines the sets of things that are of interest in financial business applications and the ways that those things can relate to one another. In this way, FIBO can give meaning to any data (e.g., spreadsheets, relational databases, XML documents) that describe the business of finance.

Home Page: https://spec.edmcouncil.org/fibo/

License: MIT License

Shell 100.00%
finance financial-services fintech ontology ontology-repository owl rdf

fibo's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fibo's Issues

Fx: Incomplete definition for Spot Rate

Spot rates are quoted. Those quoted rates, as market data, are what’s referenced here. That should be reflected in the definition, which implies a specific rate for a (potential) trade. It is not the same as a rate in an actual Fx deal, since it is a quoted market rate.

Definition is currently as follows:
The exchange rate at a point in time, with settlement at that same point in time.
See also Bank of England definition:
"The data represent indicative middle market (mean of spot buying and selling) rates as observed by the Bank's Foreign Exchange Desk in the London interbank market around 4pm. A monthly working day average is published. They are not 'official' rates and are no more authoritative than rates provided by any commercial bank operating in the London market. Spot rates are applicable to deals executed for settlement two working days later."

FIBO-IND needs testing as input to updates prior to formal RFC release

Following up on comment elsewhere from @rivettp: "Wouldn’t it be more useful in short term to work on some test cases for FIBO-IND which we can use to test and update that specification (with both fixes and documented examples for ease of understanding) before it hits the world via formal RFC?"

Info I need in order to do this:

  • most current FIBO-IND OWL files (I do not believe these are in the main fork. Whoever has them should commit them to their fork, if not already done, and open a pull request to bring them over to main).
    Given that, I can do basic OWL integrity tests.
  • any available files, notes, artifacts used to capture requirements for FIBO-IND
    If already in repository, a note about what and a pointer to where will do.
  • instance data
    If it exists, I just need to know that and be able to find and access it.
    If it doesn't exist, I need to work with SMEs to get or create it.

Tagging team because I don't know who has or knows about what (both materials and timeline info).

@EnterpriseDataManagementCouncil/fibo-core-team

We need to review use of ananotation property sm:publicationDate

The definition is as follows:
"the date this version of the specification was published"

if we're submitting a draft for review/RFC then it's not a formally published version (even for RFC it's not published until after approval by FTDF, AB and DTC) so we should not really use that annotation (we could use the less-specific dct:issueDate) , or we should update the definition of the property in Specification Metadata.

We need to agree version numbering to use

We cannot use "1.0" until the FTF has completed.
OMG does not use a format of the form "1.0.1" - it has to be 1.0 or 1.0.1.
If a subsequent RFC changes a module, do we increase the version of just that module or also its parents?

MarketBaseRate scope

This term was intended to encompass all measures within the Indices and Indicators universe, but realistically Economic Indicators are not ever referred to as kinds of market base rate. They are measures of an economy, where base rates (index, interest rate) are measures of a market. It’s not clear where Fx stands on this either.

Proposed change: Remove the inheritance to the (renamed) MarketBaseRate from EconomicRate

MarketBaseRate Naming

Think of a better name for this (this name came from IBM Research and is not an attested industry label).
MarketBase is a more widely attested term.

IR: Fed Funds Rate too specific.

Comment that the inclusion of Fed Funds Rate seems too specific a thing to include.

Reponse: SMEs were clear that this is widely used enough that it needs to be present. Review whether there are others which should be included based on the same criteria.

IR: Rename various Classes

• Rename InterestReferenceRate to ReferenceRate
• Rename OvernightInterestRate to OvernightRate
• Rename USFedFundsRate to FedFundsRate
• Rename BaseRate to BankBaseRate

"Ontologies" contains UML models?

I was surprised to see the Magicdraw files / UML models in this folder; was expecting OWL files. Maybe need different label/distinction here.

Fx: Fx Rates add block amount property

Include property in Fx Spot / all Fx Rates for the block amount against which a quoted Fx rate is quoted.
This should possibly be a feature of the “Method”.

Create specific tests for FIBO-FND OWL ontology

In more detail:

  • Instance data in the sub-domain of each candidate ontology module must be obtained and made ingestable by an available OWL tool (such as Protege or Web Protege)
  • The instance data must be ingested into a testing environment with the candidate ontology loaded and a reasoner available.
  • A set of queries must be created that trigger classification of instance data entities and inferences about their properties.
  • Answers to these queries must be evaluated, either (a) manually, by SMEs, or (b) automatically, against SME-provided correct answers. Method (b) is preferred for efficiency, but may require a first iteration with method (a).
  • Test queries should include some checking for expected correct inferences and some checking for undesired incorrect answers.
  • Test performance tolerance should be determined and documented by labeling individual tests as must-pass or may-fail.
  • Tests should be run as frequently as is feasible (given resources and current state of automation) during development. Test results should be captured each time along with the specific candidate ontology version and test versions involved.
  • Test results should be taken to constitute input into continued development. Tests representing SME-provided requirements should be considered to be indirect SME review.
  • Candidate ontologies should not be considered release-ready until passing all tests marked as must-pass.

cc: @DennisWisnosky

Segregate measures and statistical measures

Volatility and Spread are not kinds of parameter even in the loosest sense.
Separate these from the MarketReferentialParameter inheritance tree.
Following addition of new terms Analytics (see separate issue) these should be children of Statistical Measure.

Uplpad EA File and XMI from this.

Determine where in the folder structure the two manifestations of the EA source file should go, put these there and check the structure back in.

Refactor FIBO ontologies to minimize revision of released ontologies

Revision of released ontologies can be greatly reduced by the use of small, stability-optimized, ontology modules and architecture approaches such as spindling and pushing many integration dependencies into modules separate from main content modules. The current factoring of the FIBO ontologies is not optimized for stability. Current process assumes that it will be acceptable to users and to the OMG to revise released modules frequently, potentially with each new package release. If such revision is to be minimized, instead, some FIBO-wide refactoring will be necessary.

It is good practice to minimize the need to revise released ontologies. Frequent revision of previously released ontologies forces users to re-evaluate and possibly revise their own applications, mappings, etc. Extension of released ontologies is fine. Breakage and sync problems are less likely and more easily managed because of the separation of new and existing content, and the need to explicitly import new release content before changes are seen. This can't completely replace revision -- errors and bugs discovered post-release still need to be fixed by revision -- but it can dramatically reduce the frequency.

Fx: Fx Forward rates should be quoted as premium against a spot rate

Remove inheritance link from Fx Forward to Fx Rate. Review whether Fx Rate would still exist as an abstract of anything other than Fx Spot. Add object property to Fx Forward identifying the rate against which it is quoted. Revise the datatype for Fx forward to reflect that it is a premium not a rate.

Create an initial set of mandatory pre-release tests for all OWL ontologies

This enhancement covers a subset of pre-release tests, namely, those that apply to all FIBO OWL ontologies.

This test set should include

  • consistency checks
  • checks for compliance with FIBO-wide ontology design decisions (e.g., all required metadata is there, any requirements are met that all elements of a certain type have certain info specified).

Need to *revise* released ontologies should be minimized.

It is good practice to minimize the need to revise released ontologies. Revising once released tends to cause breakage in user applications. In a standard, it also causes downstream models to become out of sync.

Extension of released ontologies is fine. Breakage and sync problems are less likely and more easily managed because of the separation of new and existing content, and the need to explicitly import new release content before changes are seen. This can't completely replace revision -- errors and bugs discovered post-release still need to be fixed by revision -- but it can dramatically reduce the frequency.

Two main items on the path to making released ontologies more stable:
(1) Rigorous testing and evaluation, against well-specified requirements, before release. This must be addressed by the tests, test materials, and evaluation process in development.
(2) Small and stability-optimized ontology modules. The current factoring of the FIBO ontologies is not optimized for stability. In fact, it assumes the acceptability of regular revisions to released products. If such revision is to be minimized, some refactoring will be necessary.

IR: Add child classes to the renamed InterbankRate

InterbankOfferRate is a type of InterbankRate (and e.g. LIBOR is a kind of Interbank Offer Rate). Add this to the now renamed class that used to be InterbankOfferRate.

Also add others as identified, including InterbankBidRate and any others which are publicly quoted somewhere.

Rename IndicatorsParameters to Indicators

Change of name to this ontology.
Consequent change of namespace.
Namespace abbreviation changes to /…/ (to be determined)
(OR this may retain the same namespace)

Remove MarketReferentialParameter

This is to be removed. Other changes identifies in these Issue reports make this redundant: MarketBaseRate to be direct child of new Measure concept in analytics ontology; Volatility and (local) Spread to be direct children of StatisticalMeasure in Analytic ontology.

Identify the methods by which rates and indices are arrived at

Add “Method” as a class, and add a property to the most general type of quoted index/rate, relating it to the method by which it is determined. Add sub-classes of “Method” as identified in other issues around specific types of rate and index. Some of the properties given for those should then be properties of those Method sub-classes.
This will to some extent be a “Black box” for many of these.

Initial Folder Structure needs team OK

-- Is it clear enough to all contributors what each folder contains?
-- Is it clear enough to all contributors where various types of documents can be found?
-- Is it clear enough to all contributors where various types of documents should be put?
-- Are there any major gaps (Are there whole type of files such that they should be in the repository, but it isn't clear where they go)?

Things can still be changed after initial set-up, but we want to be reasonably sure that the initial set-up is reasonably clear and complete, so that all contributors can immediately begin adding materials they hold, with minimum confusion about where things go.

Definition for Parameter

Raised by PR as: "I could not find definition for “parameter” on its own and the term is used in the definition of many other concepts. "

Proposed changes:
Change Parameter to Measure; move Measure to the new Math ontology (see separate Issue), and give it a suitably sourced definition.

Review definitions of other concepts and change references from Parameter to Measure in those.

Separate Repository in EDMC for the FIBO Profile code

In my GitHub repositories there is a repository for the code, scripts, and document templates for the FIBO Profile. That profile/plugin enhances baseline VOM to give the FIBO models a few in-situ tables and a reporting template for the generation of the FIBO ODM BE profile specification.

https://github.com/lonniev/com.nomagic.cameo.partners.omg.fibo.plugins.derivedproperties

I recommend that the FIBO team migrate that repository to this GitHub community out of my personal area.

Identify market for certain kinds of rate and index

Add a class called Market. Add a relationship property to this, from the most general type of rate / index.
Include relationship to “Venue” and “place” as properties of Market (these are all in the SR / BCO model under Securities Common).
This is to some extent a black box. More detail may be added after conversion of Securities Common, and with addition of market convention to that model.
This requirement applies specifically to interest rates and Fx. Economic indices already refer to Economy, which is comparable but different. Use a similar model pattern to that used for Economy.

Fx: Add property to Spot rate identifying the time to settlement for which the spot rate is quoted

See BoE definition for Spot rate. Settlement is a market convention and “2” is an example of such a convention for the London market.
See also Bank of England definition:
"The data represent indicative middle market (mean of spot buying and selling) rates as observed by the Bank's Foreign Exchange Desk in the London interbank market around 4pm. A monthly working day average is published. They are not 'official' rates and are no more authoritative than rates provided by any commercial bank operating in the London market. Spot rates are applicable to deals executed for settlement two working days later."

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.