Intersecting worlds

There is no type of information as divided between two worlds as contracts.

Sometimes you want a data grid that you can filter and manipulate. This is the structured, numerical world.

Sometimes you want to interrogate the text itself, Ctrl-F-style. This is the unstructured, linguistic world.

In most cases, you want to do these things across your entire set (or any given subset) of contracts, not just one at a time. And you want to seamlessly switch between the two.

This means you need a data structure simultaneously optimised for both worlds.

There are no off-the-shelf products that come close to that requirement. If you try cobbling together a contract database yourself, it’s therefore almost certainly going to fail.

You need a contract database whose underlying structure was explicitly designed to sit in that special intersection.