Skip to main content
Question

Custom Relationships for Terms

  • June 23, 2026
  • 1 reply
  • 12 views

Forum|alt.badge.img

We have been working on the FIBO ontology and have started setting up the custom relationships as they appear in FIBO. Some examples are below:

 

FIBO Parent Term

FIBO Relationship

FIBO Child Term

Account

hasOpenDate

Open Date

Account

isHeldBy

Account Holder

Account

isIdentifiedBy

Account Identifier

Account

hasCloseDate

Close Date

Account

hasRecord

Transaction Record

Account

hasBalance

Balance

Account

isProvidedBy

Account Provider

Account As An Asset

isAssetOf

Account Holder

Account As An Asset

isPlayedBy

Account

Account Holder

holds

Account

 

The relationships are in the middle column, titled “FIBO Relationship.”

When we create the relationships, they are duplicating because there is not an inverse relationship. For example, Parent has an inverse of Child so there is not a duplicate.

For relationships like “hasOpenDate” there is not an inverse in FIBO. When we set it up, it creates a duplicate because there must be a source and target. What would you recommend in this situation? There are over 1000 unique relationships in FIBO so I’d like to avoid 1000+ duplicates.

 

1 reply

Albert de Ruiter
Rocket Pioneer L1
Forum|alt.badge.img+4

Hi ​@sjettawi ,

Using ‘Account’ as an example, this is how it looks to me. As parent it resembles an entity and its child terms are describing the entity, so in fact they are the attributes of the entity. Attributes can have different roles in relation to an entity

  • It identifies the entity, so like a business key, like the Account Identifier in your example
  • It can be part of the identifier and foreign key in another entity
  • Or otherwise it just describes the entity further

So abstracting it like this, you would only need these three termrelation types

Name Target rel name Source rel name
BusinessKey Has business key attribute(s) Is part of business key in entity
ForeignKey Has foreign key attribute(s) Is foreign key in entity
DescribingAttribute Has describing attribute(s) Is describing attribute in entity

So maybe the Account Identifier also exists in another entity (parent) as foreign key and part of the business key. In other words, more relationships can exist for an attribute (child).

And also the entity will usually have more relationships: it will have both a business key and describing attributes.

In our implementation we have also distinguished entity and attribute terms as different types of terms. You may find this series of articles on the subject interesting:

 

Hope this helps.

Best regards,

Albert