# A Semantic Model for Enhancing Data-Driven Open Banking Services
## 3 Semantic Model
### Ontology Implementation  
The Open Banking Ontology (OBO) proposed here was developed with Protege editor (Protege Web Site [[https://protege.stanford.edu/](https://protege.stanford.edu/)]([https://protege.stanford.edu/](https://protege.stanford.edu/)) (accessed on 25 November 2022)) after several rounds of design with experts in the domain of knowledge (in the context of the Helix project). As a result, the proposed ontology is made up of 14 classes, 10 object properties, 35 data properties, and 250 axioms. Figure 1 shows a general overview of the OBO proposal, and for the sake of simplicity, a selection of the main classes and properties are detailed below. The properties are formalized using the OWL-DL semantic logical description syntax. A summary of this syntax, which can be used to support the interpretation, is shown in Table 1. The remaining elements of OBO can be examined in the software repository, which is available at [[https://ontologies.kaos.uma.es/obo](https://ontologies.kaos.uma.es/obo)]([https://ontologies.kaos.uma.es/obo](https://ontologies.kaos.uma.es/obo)) (accessed on 28 November 2022). 1. The class _Company_ represents those companies that take part in a given PSD2 transaction. For this class, 5 data properties were defined: _businessName_, to indicate the company name, _companyId_, which models the company identifier, _corporationId_ to identify the corporation (when existing) to which the company belongs, _currencyCode_, which represents the currency the company works with, and _fiscalId_ to store the tax identification number. In addition, the _Company_ class has an object property, _last-StatementCustomer_, which links the company with its PSD2 bank statements. Table 2 describes the properties of the Company class in the description logic definition. 2. The _Customer_ class was included to annotate customers that participate in transactions with companies. A set of 3 data properties were defined for this class: _businessName_, which represents the customer's name, _customerId_, which stores the customer identifier, and _fiscalId_ to set the number of the client's tax identification. Description logics of these properties can be found in Table 3.
3. The _Item_ class represents the invoices that customers should pay. Its main properties are defined in description logic in Table 4, comprising 7 data properties and 2 object properties. As for data properties, it is worth mentioning textititemAmount, which stores the invoice amount in the currency associated with the corresponding company, _itemCurrencyAmt_, to annotate the amount of the invoice, _itemIssueDate_, which describes the invoice issue date, _currencyCode_, which indicates the currency associated with the invoice and in which it is expressed, and _indicator_, which represents a series of descriptors associated with the invoice. The two object properties are: _itemCompany_, which links each invoice with its company, and _ItemCustomer_, which connects the invoice to the customer. Figure 1: General overview of the Open Banking Ontology proposed in this study. The class _Statement_ represents the bank statements carried out on a particular bank account. Among its main data properties, a set of 5 representatives ones is: _statementA-mount_, to annotate the transaction amount, _accountNumber_, which indicates the bank account in which the statement was made, _statementCurrency_, which stores the currency associated with the statement, _statementBeneficiary_, representing the beneficiary of the bank statement, _concept_ and _statementValueDate_, which indicate the concept and value date of the statement, respectively. The object property _statementHasOffice_ was defined for this class to associate each transaction with the corresponding bank branch. Table 5 describes the properties of the _Statement_ class. 5. The _Bank_ class models the bank information.