Theory — FIBO and QL
FIBO in two paragraphs
FIBO (Financial Industry Business Ontology, EDM Council) is the de-facto OWL ontology for financial concepts. It defines legal entities, parties, instruments, contracts, accounts, dates — all the vocabulary banks already use, formalised. Major regulators (FRB, ECB) actively endorse it.
The disciplined move: subclass FIBO, don't replace it. A :ReportableCounterparty is just a fibo:LegalPerson with an extra reporting predicate. Three lines of Turtle.
What OWL 2 QL allows (and doesn't)
QL is deliberately the smallest OWL 2 profile — every axiom in it must be rewritable into SQL on a relational schema. What QL allows:
rdfs:subClassOf(between named classes only)rdfs:subPropertyOf,owl:inverseOf,rdfs:domain,rdfs:rangeowl:disjointWith(class disjointness)- Existential restrictions on the right-hand side only (
A subClassOf hasX some Y)
What QL forbids (and why):
- Functional / inverse-functional properties — they would require row-level uniqueness checks beyond what query rewriting can express.
owl:equivalentClassbetween complex expressions — would push reasoning out of AC0.- Universal restrictions (
only) — same. - Number restrictions (
cardinality 2) — same.
The pay-off: SPARQL gets rewritten into a single SQL query that the DWH planner optimises. The ontology costs nothing at runtime beyond a constant factor.
The trade-off in one line
MedaCore (DL) reasons; NorthWind (EL) classifies; Atlas (QL) rewrites.