Module 09 · cognitive feature
Semantic ontology mapping
Legacy enterprise databases are chaotic, undocumented and cryptically named. The cognitive pipeline samples the schema, infers an entity mapping with a confidence score, and flags what a human still has to decide — which is what lets the agent answer 'what is our exposure to NMC Health?' against a 20-year-old Oracle instance.
$ python -m fde_toolkit ontology
Legacy schema
what the FDE finds on day one
TBL_CUST_99X_REV → Customer
no table comment in the source system
auto-accepted
A legal entity or individual the bank has onboarded.
| Legacy column | Semantic attribute | Inferred meaning | Conf. |
|---|---|---|---|
CUST_ID_NO | customerIdentifierNumber | customer identifier number (VARCHAR2(18)), e.g. CUST-9921 | 0.99 |
CUST_NM_FULL | customerNameFullpii | customer name full (VARCHAR2(120)), e.g. NMC Health PLC | 0.99 |
DOM_CTRY_CD | domicileCountryCode | domicile country code (CHAR(2)), e.g. AE | 0.99 |
KYC_STS_FLG | knowYourCustomerStatusFlagpii | know your customer status flag (CHAR(1)), e.g. V | 0.99 |
PEP_IND | politicallyExposedPersonIndicatorpii | politically exposed person indicator (CHAR(1)), e.g. N | 0.99 |
REV_DT | reviewedDate | reviewed date (DATE), e.g. 2024-11-02 | 0.99 |
Enterprise knowledge graph
Customer—HOLDS→Account
Account—SENT→Transaction
Transaction—RECEIVED_BY→Account
Customer—HAS_EXPOSURE→CreditExposure
Customer—SUBJECT_TO→KycStatus
Natural language → Cypher
what the mapping buys you
MATCH (c:Customer {name: $name})-[:HAS_EXPOSURE]->(e:CreditExposure)
RETURN c.name, e.limitAmount, e.utilisedAmount,
e.utilisedAmount / e.limitAmount AS utilisationWithout the ontology this question is unanswerable — no model knows thatEXP_LMT_TB.UTIL_AMT means utilised credit exposure. The mapping, not the model, is the deliverable.