Abstract
The Financial Regulation XBRL ontology is a one-to-one OWL/RDF representation of the XBRL (eXtensible Business Reporting Language) schema.
Operational XBRL ontologies like the US Call Report and EU Solvency include FinRegOnt as a core ontology. The operational ontologies are also one-to-one conversions of their respective taxonomy schemata. The objective is not to design a better XBRL reporting ontology. The requirement is solely to import/export between RDF/OWL and XBRL:
- For financial institutions to create XBRL instances from data in the sub-domain ontologies, Banking, Fund, Hedge Fund, and Insurance.
- For regulators and analysts to load XBRL instance files into ontologies.
The ontology must be complete, covering all elements in the XML schema and all XBRL specifications, to meet the requirement.
We used the Topbraid Maestro ontology tool to import the XML schema and manually adjusted namespaces and resource names.
The resulting ontology fulfilled completeness requirement for tested US Call Report and EU Solvency II taxonomy.
Introduction
XBRL is the dominant global standard for exchanging business information. A US CPA (certified public accountant), Charlie Hoffman invented XBRL in 1998 as a semantic standard based on XML (eXtensible Markup Language) syntax. The Securities and Exchange Commission (SEC) and the Federal Deposit Insurance Corporation (FDIC) mandate financial filings in XBRL.
Global adaptation came along with International Financial Reporting Standards (IFRS). European regulators for Banking and Insurance define reporting requirements as XBRL Taxonomies. Compliance filings are XBRL instance files.
Ontology Web Language (OWL) defines the semantics of concepts, their relationships, and axioms. Compliance crosses the domains of Finance and Legal.
Figure 1 shows how the Financial Regulation Ontology modules import XBRL and regulatory taxonomies.
Solid arrows are ontology from ontology imports and XSD from XSD imports. For example: FinRegOnt imports FIBO. Eurofiling imports XBRL
Dashed arrows are imports of XSD into the ontology. For example: FinRegOnt imports XBRL schema into an OWL representation. Insurance Ontology imports the EIOPA Solvency taxonomy. schema.
Finance and Legal domains have widely cited and adapted reference ontologies.
The Financial Industry Business Ontology (FIBO) is a collaboration between the Enterprise Data Management Council (EDMC) and the Object Management Group. The EDMC leads design in collaboration with major Financial Institutions. OMG provides governance and publishes FIBO as a formal standard.
The Legal Knowledge Interchange Format (LKIF) models legal rules of the kind found in legislation and regulations. It was the main deliverable of the European project for Standardized Transparent Representations to Extend Legal Accessibility (Estrella, IST-2004-027655)
The Financial Regulation Ontology (FinRegOnt) extends and aligns the two domain reference ontologies. Ontology Alignment establishes the relationship of equivalent concepts in FIBO and LKIF. It enables queries and reasoning across the domains. FIBO extensions define subclasses for specific funds, hedge funds, banks and insurances. LKIF extensions cover the regulatory framework, laws, regulations, legal reasoning and forms.
An ontology must hold source data to be operational .
The Financial Regulation Ontology instantiate classes with real financial and legal data. To be useful a compliance ontology must create and load regulatory filings and reports. The Hedge Fund ontology has an OWL representation of SEC form PF (private fund). The Fund ontology has an OWL version of SEC form ADV (investment adviser) and loads a subset of public filing data into FIBO. The forms are in XML, but not XBRL. The Bank ontology has the XBRL US Call Report (Federal Financial Institutions Examination Council, FFIEC 031) as an example. The prototype shows how reproduce the FFIEC public report with a select statement in the ontology query language, SPARQL. The FDIC Call Report is just one of many mostly non-XBRL filing requirements for US banks. The Call Report Taxonomy only requires basic XBRL.
The European Insurance And Occupational Pensions Authority (EIOPA) Solvency II taxonomy is much bigger in size and complexity. Beyond the basic XBRL modules (XLink, Linkbase, Instance) it has XBRL releases for arc-role, cubes, enumerations, formulas, references, roles, tables, and taxonomy metadata.
Beginning ontologists should consult the tutorial and related work.
To jump right into browsing ontology classes launch the ontology documentation browser or follow instructions for Protégé editor in the “how to” section of this website.
The FinRegOnt tutorial chapter one describes the reference ontologies, LKIF and FIBO and Financial Regulation Ontologies fundamental design.
Chapter two covers XML import procedures with Topbraid Maestro ontology tool suite in dept. The example is for loading US laws and regulations into FinRegOnt, but technical steps logical and physical integration model are the same for XBRL.
Finally the Operational ontologies for Insurance and Banking show taxonomies that import and use this XBRL design.
EIOPA sources and Topbraid conversion method
Financial Regulation Ontology uses Topbraid as the main ontology tool. XML and Database imports, transformation rules and orchestration are implemented with Maestro:
TopBraid Composer™ Maestro Edition (TBC-ME) combines world’s leading semantic web modeling capabilities with the most comprehensive data conversion options and a powerful Integrated Development Environment (IDE) for building semantic web and Linked Data applications.
Tutorial chapter two explains the import of XML schema with the ontology tool with detailed screenshots. The tutorial example is importing United States Code (USC =laws) and the Code of Federal Regulations (CFR), but users can substitute with XBRL schemata.
Figure 2 shows the load model for Linkbase, instance and XLink.
We import the XML schema into the ontology tool. This creates a set of OWL files. Then we export the graph and change the URI namespaces as per Table 2.
There is an important difference between the import of laws and regulations and this XBRL import. The CFR/USC conversion has two steps:
- Source to Staging OWL representation
A simple tool-based reverse engineering of the Federal Digital System schema into a one-to-one representation. (e.g. https://finregont.com/fro/cfr/CFR-2015-title12-vol2-part217.ttl) - Staging to FinRegOnt ontology.
An extract of the step one result, transformation and load into an ontology re-design of law and regulation. (e.g. https://finregont.com/fro/cfr/FRO_CFR_Title_12_Part_217.ttl)
The XBRL RDF/OWL corresponds to step one, staging. We do not need a re-design of XBRL and the regulatory taxonomies, because we directly extract, transform and load (ETL) from staging OWL representation into FIBO.
The XSD import converts the source schema constructs into OWL
The generated OWL entities have an annotation that preserves the source XML tag. The ontology tool uses the tag to export OWL instances into XML files. This is how semantic compliance populates regulatory forms with FIBO data.
XSD/XML Constructs | OWL Constructs |
xsd:simpleType | owl:Datatype |
xsd:simpleType with xsd:enumeration | Becomes an owl:Class as a subclass of EnumeratedValue. Instances are created for every enumerated value. Optionally, an instance of Enumeration, referring to all the instances, is created as well as the owl:oneOf union over the instances. |
xsd:complexType over xsd:complexContent | owl:Class |
xsd:complexType over xsd:simpleContent | owl:Class |
xsd:element (global) with complex type | owl:Class and subclass of the class generated from the referenced complex type. Optionally, the generated class is prefixed with A_Global- to distinguish global elements from complex types with similar names during trimming or case modification of characters. Also optionally, the generated class becomes subclass of A_GlobalElements. |
xsd:element (global) with simple type | owl:Datatype |
xsd:element (local to a type) | owl:DatatypeProperty or owl:ObjectProperty depending on the element type. OWL Restrictions are built for the occurrence. |
xsd:group | owl:Class and optionally subclass of A_AbstractModelGroup |
xsd:attributeGroup | owl:Class and optionally subclass of A_AbstractAttributeGroup |
xsd:minOccurs and xsd:maxOccurs | Cardinality specified in minimum cardinality, maximum cardinality and universal (allValuesFrom) OWL restrictions. |
Anonymous Complex Type | As for Complex Type except a URI is constructed from the parent element and the nested element reference. Optionally, the class is defined as a subclass of A_Anon. |
Anonymous Simple Type | As for Simple Type except a URI is constructed from the parent element and the nested element reference. |
xsd:default on an attribute | Uses dtype:defaultValue to attach a value to the OWL restriction representing the associated property. |
Substitution Groups | Subclass statements are generated for the members. Instance files resolve their types by consulting the OWL model at import-time. |
Annotation attributes on elements | OWL annotation property declarations are created, and the property values are placed directly on the relevant class. |
Annotations using xsd:annotation | Become, based on user selection, dc:description, rdfs:comment and/or skos:definition OWL annotations. |
xsi:type on an XML element | Overrides the schema type with the specified type. |
Table 1: Mapping of XSD constructs to OWL. (source: Topbraid Maestro help system)
Scope for FinRegOnt is the XBRL folder in EIOPA_SolvencyII_XBRL_Taxonomy_2.1.0
The package of 20 August 2016 is a conformance suite for Solvency II, so we take the XBRL schemata from this secondary source. The package also has a folder for Eurofiling, a joint initiative of the EIOPA and the European Banking Authority (EBA), XBRL Europe and stakeholders. A really revolutionary harmonization: Eurofiling collects taxonomy extensions to XBRL that are common to banking, insurance, securities and central bank reporting.
Source XBRL XSD namespace | Target ontology URI |
http://www.w3.org/1998/Math/MathML | <https://finregont.com/fro/xbrl/w3/MathML.ttl> |
http://www.xbrl.org/2003/XLink | <https://finregont.com/fro/xbrl/XLink.ttl> |
http://www.xbrl.org/2003/instance | <https://finregont.com/fro/xbrl/instance.ttl> |
http://www.xbrl.org/2003/linkbase, | <https://finregont.com/fro/xbrl/linkbase.ttl> |
http://www.xbrl.org/2004/ref | <https://finregont.com/fro/xbrl/ref/ref.ttl> |
http://www.xbrl.org/2005/role/restatedLabel | <https://finregont.com/fro/xbrl/role/restatedLabel.ttl> |
http://www.xbrl.org/2009/utr | <https://finregont.com/fro/xbrl/utr/utr.ttl> |
http://www.xbrl.org/2013/arcrole/parent-child | <https://finregont.com/fro/xbrl/arcrole/parent-child.ttl> |
http://www.xbrl.org/dtr/type/non-numeric | <https://finregont.com/fro/xbrl/dtr/non-numeric.ttl> |
http://www.xbrl.org/dtr/type/numeric | <https://finregont.com/fro/xbrl/dtr/numeric.ttl> |
http://xbrl.org/2005/xbrldt | <https://finregont.com/fro/xbrl/cube/xbrldt.ttl> |
http://xbrl.org/2006/xbrldi | <https://finregont.com/fro/xbrl/cube/xbrldi.ttl> |
http://xbrl.org/2008/assertion/consistency | <https://finregont.com/fro/xbrl/formula/consistency.ttl> |
http://xbrl.org/2008/assertion/existence | <https://finregont.com/fro/xbrl/formula/existence.ttl> |
http://xbrl.org/2008/assertion/value | <https://finregont.com/fro/xbrl/formula/value.ttl> |
http://xbrl.org/2008/filter/boolean | <https://finregont.com/fro/xbrl/formula/boolean.ttl> |
http://xbrl.org/2008/filter/concept | <https://finregont.com/fro/xbrl/formula/concept.ttl> |
http://xbrl.org/2008/filter/dimension | <https://finregont.com/fro/xbrl/formula/dimension.ttl> |
http://xbrl.org/2008/filter/entity | <https://finregont.com/fro/xbrl/formula/entity.ttl> |
http://xbrl.org/2008/filter/general | <https://finregont.com/fro/xbrl/formula/general.ttl> |
http://xbrl.org/2008/filter/match | <https://finregont.com/fro/xbrl/formula/match.ttl> |
http://xbrl.org/2008/filter/period | <https://finregont.com/fro/xbrl/formula/period.ttl> |
http://xbrl.org/2008/filter/relative | <https://finregont.com/fro/xbrl/formula/relative.ttl> |
http://xbrl.org/2008/filter/segment-scenario | <https://finregont.com/fro/xbrl/formula/segment-scenario.ttl> |
http://xbrl.org/2008/filter/tuple | <https://finregont.com/fro/xbrl/formula/tuple.ttl> |
http://xbrl.org/2008/filter/unit | <https://finregont.com/fro/xbrl/formula/unit.ttl> |
http://xbrl.org/2008/formula | <https://finregont.com/fro/xbrl/formula/formula.ttl> |
http://xbrl.org/2008/generic | <https://finregont.com/fro/xbrl/generic/generic.ttl> |
http://xbrl.org/2008/label | <https://finregont.com/fro/xbrl/generic/label.ttl> |
http://xbrl.org/2008/reference | <https://finregont.com/fro/xbrl/generic/reference.ttl> |
http://xbrl.org/2008/variable | <https://finregont.com/fro/xbrl/formula/variable.ttl> |
http://xbrl.org/2010/custom-function | <https://finregont.com/fro/xbrl/formula/custom-function.ttl> |
http://xbrl.org/2010/filter/aspect-cover | <https://finregont.com/fro/xbrl/formula/aspect-cover.ttl> |
http://xbrl.org/2010/message | <https://finregont.com/fro/xbrl/formula/message.ttl> |
http://xbrl.org/2010/message/validation | <https://finregont.com/fro/xbrl/formula/validation.ttl> |
http://xbrl.org/2014/extensible-enumerations | <https://finregont.com/fro/xbrl/enum/extensible-enumerations.ttl> |
http://xbrl.org/2014/table | <https://finregont.com/fro/xbrl/table/table.ttl> |
http://xbrl.org/2016/assertion-severity | <https://finregont.com/fro/xbrl/formula/assertion-severity.ttl> |
http://xbrl.org/2016/taxonomy-package | <https://finregont.com/fro/xbrl/tax/taxonomy-package.ttl> |
http://xbrl.org/2011/table | <https://finregont.com/fro/xbrl/table/composition-axis.ttl> |
http://xbrl.org/2011/table | <https://finregont.com/fro/xbrl/table/filter-axis.ttl> |
http://xbrl.org/2011/table | <https://finregont.com/fro/xbrl/table/relationship-axis.ttl> |
http://xbrl.org/2011/table | <https://finregont.com/fro/xbrl/table/rule-axis.ttl> |
http://xbrl.org/2011/table | <https://finregont.com/fro/xbrl/table/selection-axis.ttl> |
http://xbrl.org/2011/table | <https://finregont.com/fro/xbrl/table/tuple-axis.ttl> |
Table 2: Source XBRL.org namespace to target FinRegOnt.com namespace
Resulting ontology modules
The diagram, figure 3 shows the XBRL ontology include graph.
Table 3 lists and describes the ontology files.
Directory | File | Prefix | Description |
./ | instance.ttl | instance | An RDF/OWL version of XBRL instance. The instance ontology provides context and attribute classes for facts in XBRL instances. |
linkbase.ttl | linkbase | An RDF/OWL version of the XBRL linkbase schema file. Linkbase connect different XBRL instance similar to object properties in OWL.. | |
xbrl_all.ttl | xbrl_all | A configuration ontology file to include all XBRL ontology modules. The ontology doesn’t define any triples. | |
XLink.ttl | XLink | An RDF/OWL version of XBRL Xlink. The Xlink ontology implements classes and properties that extend the W3 xling standard. XLink, is an XML markup language and W3C specification that provides methods for creating internal and external links within XML documents, and associating metadata with those links (Wiki) This core ontology defines classes for ArcType, DocumentationType, LocatorType, ResourceType, Simple Type and TitleType. | |
arcrole | parent-child.ttl | parent-child | An RDF/OWL version of the XBRL parent-child. Like its original XSD, the ontology doesn’t do anything other than importing linkbase. We keep the file for consistency in case taxonomies have it as an import. |
cube | xbrldi.ttl | xbrldi | An RDF/OWL version of the XBRL dimension. The ontology has classes for typed and explicit dimension members. |
xbrldt.ttl | xbrldt | An RDF/OWL version of the XBRL hypercube. The ontology adds dimension item, enumerated values, context elements and hypercube items to XBRL instance. | |
dtr | non-numeric.ttl | non-numeric | An RDF/OWL version for non-numeric items. The ontology adds subclasses to instance:ItemAttrs. |
numeric.ttl | numeric | The ontology provides more numeric Item Types as subclasses of XBRL Instance Decimal and Pure Item Type. | |
enum | extensible-enumerations.ttl | extensible-enumerations | An RDF/OWL version of the XBRL extensible enumerations. The ontology adds custom emum items. |
formula | aspect-cover.ttl | aspect-cover | A XBRL formula specifies validation based on XBRL instance facts and generation of derived data as output XBRL instance facts. The formula ontology provides classes and properties instance ontologies that include formula. Aspect filters cover aspects that govern implicit filtering and sub-partition of sequences of facts in an XBRL instance. |
assertion-severity.ttl | assertion-severity | An assertion is either satisfied or not satisfied. The severity lets the taxonomy assigns a level of importance to the assertion. There are 3 ontology classes for this purpose: Error, OK and Warning. | |
boolean.ttl | Boolean | The Boolean filter defines the syntax to combine sub-filters with AND/OR. The ontology defines two classes for this purpose. | |
concept.ttl | concept | The concept filter ontology extends Variable with classes to filter element-name, period type, balance, schema data type and substitution group. | |
consistency.ttl | consistency | The consistency ontology extends Validation with classes to check the consistency of the fact produced by a formula evaluation with aspect-matched input facts in the XBRL business report. | |
custom-function.ttl | custom-function | A XBRL formula specifies validation based on XBRL instance facts and generation of derived data as output XBRL instance facts. Variables schema allows the taxonomy to include custom function calls. However these depend on the XBRL processor’s execution. The custom function schema extends this functionality by defining a syntax to define the implementation. The ontology defines Implementation, Input and Step classes. | |
dimension.ttl | dimension | The dimension filter extends Variables schema with syntax to filter XBRL instance fact based on instance dimensions. The ontology defines classes for explicit and typed dimensions, model and axis. | |
entity.ttl | entity | The entity ontology extends Variable with filters for entity identifier. It defines classes for specific and regular expression identifier filters. | |
existence.ttl | existence | Existence assertions specify the syntax for assertions that enable testing for facts meeting specified criteria. The ontology extends Variable with Existence Assertion subclass of Variable Set Assertion. | |
formula.ttl | formula | An RDF/OWL version of the XBRL formula schema file. A XBRL formula specifies validation based on XBRL instance facts and generation of derived data as output XBRL instance facts. The formula ontology provides classes and properties instance ontologies that include formula. | |
general.ttl | general | The General extends Variable. It can be used, when other more specific filters are not suitable. The general filter is particularly suitable when a filter is required that conditions on several aspects of a fact. The ontology defines General, a subclass of Variable Filter. | |
match.ttl | match | The Match Filter defines XML syntax [XML] for filters that condition upon matching the value of an aspect of a fact to the same aspect of other facts. The ontology defines Match model as a subclass of Variable Resource Type. Several subclasses of Match model define the possible building blocks: location, entity Id, period, segment, unit, XDT and non-XDT. | |
message.ttl | message | The message ontology provides classes and properties to tie error messages to edit checks. | |
period.ttl | period | Period Filter is an extension to Variables that defines syntax for filters that condition upon the features of the period at which or over which facts have been measured. The ontology creates subclasses of Variable Resource-type for period, duration, start and end date. | |
relative.ttl | relative | The Relative filter matches facts based on the aspect of a particular other fact. The ontology defines the Relative Filter class as a subclass of Variable Resource. | |
segment-scenario.ttl | segment-scenario | This extension of Variables defines the syntax to condition on the content of segments and scenarios. This is for content NOT based on the dimensional aspect model (dimension.ttl). The ontology defines a subclass of Variable Resource-type: Filter model and two subclasses for Segment and Scenario. | |
tuple.ttl | tuple | The Tuple extends Variable with filters for ordered lists in XBRL instances. The ontology defines subclasses of Variable Resource-type for Ancestor, Location, Parent and Sibling filter. | |
unit.ttl | unit | The Unit extends Variable with a syntax for filters that can condition on units of measurement when selecting facts from XBRL instances. The ontology defines a class for the Qname model and Xlink Resource subclasses for Single and General Measures. | |
validation.ttl | validation | Validation specifies complex business rules as sets of assertions. The ontology defines classes for Assertion and Assertion Sets. | |
value.ttl | value | The formula ontology provides classes and properties instance ontologies formula values. | |
variable.ttl | variable | The ontology defines a syntax for declaration of two kinds of variables: fact variables that only check to sequences of facts in an XBRL instance and general variables that can check to a broader range of values. The ontology defines variable classes for Filter, Function, Parameter, Resource and related classes and properties. | |
generic | generic.ttl | generic | The Generic XBRL specification aims to ease the creation of new kinds of metadata by providing more concrete linking components, as well as guidance to define custom linking components. The ontology defines Generic Arc Type as a subclass of XLink Arc Type and Generic Links as a subclass of XLink Extended Type. |
label.ttl | label | Generic Label extends the XBRL Specification [XBRL 2.1]. It specifies syntax for labels that are more flexible. Generic labels associate a label with any element. Generic labels give a syntactic foundation for XBRL extension specifications. The ontology defines label as a subclass of XLink Resource-type. | |
reference.ttl | reference | Reference Generic specifies syntax for references that are more flexible than those defined in the XBRL Specification. Generic references associate a reference with any element. The ontology defines Reference as a subclass of XLink Resource-type. | |
role | restatedLabel.ttl | restatedLabel | An RDF/OWL version of the XBRL restated label. |
table | composition-axis.ttl | composition-axis | An RDF/OWL version of XBRL table composition-axis. The Table Linkbase provides a mechanism for taxonomy authors to define a tabular layout of facts. The resulting tables function for both presentation and data entry. The ontology is a direct conversion of the XBRL table composition XSD file (composition-axis.xsd). The source XSD is from the EIOPA Solvency taxonomy package. The schema may be depreciated, but we keep it for consistency with Eurofiling. |
table | filter-axis.ttl | filter-axis | XBRL specification shows filter-axis as depreciated, but we keep it for consistency with Eurofiling. |
relationship-axis.ttl | relationship-axis | The Table Linkbase provides a mechanism for taxonomy authors to define a tabular layout of facts. The resulting tables are used for both presentation and data entry. The source XSD is from the EIOPA Solvency taxonomy package. XBRL specification shows relationship-axis as depreciated, but we keep it for consistency with Eurofiling. | |
rule-axis.ttl | rule-axis | An RDF/OWL version of XBRL table rule-axis. The source XSD is from the EIOPA Solvency taxonomy package. XBRL specification shows rule-axis as depreciated, but we keep it for consistency with Eurofiling. | |
selection-axis.ttl | selection-axis | XBRL specification shows selection-axis as depreciated, but we keep it for consistency with Eurofiling. | |
table.ttl | table | An RDF/OWL version of XBRL table. The Table Linkbase provides a mechanism for taxonomy authors to define a tabular layout of facts. The resulting tables can be used for both presentation and data entry. Tables use hierarchies to specify the arrangement of XBRL facts. These hierarchies are one of the basic building blocks of the specification, but also constitute by themselves a vehicle to communicate the meaning of those reporting concepts in a similar fashion to that of the presentation linkbase, but enhanced to cover multidimensional information and more complex models. The structural ontology classes are Table Set, Table, Axis, Breakdown and Structural Node. Other classes define Table Sets, Parameters and Breakdowns. The “-axis” ontologies for composition, filter, relationship rule, selection and tuple include the Table ontology. | |
tuple-axis.ttl | tuple-axis | The schema may be depreciated, but we keep it for consistency with Eurofiling. | |
tax | taxonomy-package.ttl | taxon-pkg | XBRL taxonomies are typically distributed as ZIP files, with accompanying human-readable documentation describing which of the component files should be considered entry points. This specification defines a standard format and location for a manifest file that can be included in such ZIP files that allows compliant tools to find the entry points automatically. The ontology defines classes and properties to describe the package: Entry points (for XBRL-tools), country, document, package type, license and version information. |
utr | utr.ttl | utr | The ontology has classes that extend the W3 MathML schema with data types, numerator/denominator, units and expressions. The schema doesn’t show on XBRL specifications, but we keep it for consistency with Eurofiling. |
w3 | MathML.ttl | MathML | Mathematical Markup Language (MathML) applies XML for describing mathematical notations and capturing both its structure and content. The ontology defines classes and properties for content, definition, matrix, operators, presentation and annotation. This is an XML Schema module for the statistical operators of content MathML. Author: Stephane Dalmas, INRIA. |
Table 3: XBRL ontology directory, file, prefix and description
Conclusion and outlook
The ontology meets the requirements and fits its purpose.
The Call Report taxonomy imports XLink, Linkbase and Instance OWL files. We can import FFIEC 031 XBRL instances into OWL and query the data with SPARQL.
The Eurofiling and Solvency II taxonomy successfully imports the extended set of OWL files for table, variable, formula. Work on Solvency instances is still in progress and will be published on the Insurance Ontology website soon.
Next steps:
Semantic enhancements
We will not create a re-design of XBRL or the regulatory taxonomies. However, the SPARQL query using string comparisons (just like XBRL processors) is error prone and cumbersome. The Call Report query is an example:
# SELECT {...} WHERE {.... # The linkbase label location leads to the Location of the column ?lb_loc xlink:label-loc ?lb_label_loc . ?lb_loc a xbrl-linkbase:Loc . ?loc_ref xbrl-linkbase:locRef ?lb_loc . ?loc_ref a xbrl-linkbase:PresentationLink . ?loc_ref xlink:role-presentationLink "http://www.ffiec.gov/xbrl/report/column"^^xsd:string .
The semantic enhancement adds Object Properties to connect the resources directly:
ffiec-linkbase:hasColumnPresentationLink
rdf:type owl:ObjectProperty ;
rdfs:domain linkbase:loc ;
rdfs:label “has Column Presentation Link”^^xsd:string ;
rdfs:range linkbase:presentationLink ;
.
This helps querying the information correctly and also adds type control to range and domain. SPIN rules can CONSTRUCT instances based on the role-presentationLink.
Operational Ontologies, Banking and Insurance
Upcoming chapter four of the tutorial will show how we populate RDF/OWL instances from FIBO and export the results to XML. First SEC forms ADV and PF and then Call Report and Solvency.
Feedback & sharing
FinRegOnt, the reference ontologies FIBO/LKIF, XBRL are Open Source.
Please share this article with your colleagues and networks
and email your questions, correction and suggestions to: jziemer@jayzed.com