You work in a big organization, thousands of suppliers, and tens of thousands of contracts. Your goal is to save some bucks in the company. But how do you do that? Start by reading one contract after another and see if there are new suppliers with better deals? This requires an extensive toolbox!

In the company, a project to find similarities for products is commenced. The idea is that we can figure out whether two products serve the same purpose if they result from the same need. When that is discovered, we can decide to prioritize the cheaper option over the more expensive one.

The project goes well. The algorithm is developed, a huge list of obsolete products is constructed and implemented in the procurement system. Now it will flag the cheaper option to the user every time the expensive one is requested.

But was that it? Is the code for the product abandoned now? The final asset was the code that recommends the cheaper option, but there is much more value to take home from the constructed code. Imagine that another team, later on, needs to find some suppliers for a given product to support a need. The organization has the policy to get quotes from at least five suppliers to get the best price. Now, they decide to set up an algorithm that can find similarities for products to find related products to get a quote on. Something a system to reuse existing insights could have saved.

In order to reuse these insights, a knowledge graph based system could have been employed. The code written in the first project would have been made into a pipeline that takes products already present in the knowledge base and sets up new relations based on their similarity. Eg. Pen A -- canBeExchangedFor --> Pen B or HeadPhone A -- isSimilarTo --> HeadPhone B.

This layer is committed to the layer repository for the organization such that whenever the next team comes around and ask the system to generically find related suppliers, the system will utilize these product relations to make recommendations.

When the knowledge base is constructed correctly we can keep adding new insights without cluttering anything up. The knowledge base should realize a multi-ontological view of the world such that it can reuse insights from one domain in another domain without the system feels unstructured to work with.