Inspiration

The inspiration for this block is to use more knowledge graph-networks and deep network algorithms in structuring our notes, tasks, metrics, and social relationships. Human minds work through concept networks, and adding knowledge graphs over DBs can connect us more intuitively to the power of DB engines. Deep net algorithms power on the other hand power the concepts in minds and machines.

In the past several years we’ve seen a leap in related science, like Transformers and graph neural networks, but also a leap in technology like by Airtable which makes conceptual relationships and layering more possible in everyday information modelling.

In more practical terms, we can think of the difference of today’s web searches which are serving better and better knowledge bits and the web searches of just a couple of years ago where they failed even simple language negation.

What it does

Simply put, it lets users build and navigate knowledge through their bases. It uses deep net algorithms to present latent (hidden) relationships behind many records, but more importantly for the purpose of letting the user build knowledge using linked records, and then explore connectivity that spans many hops, not just direct or over a couple of links. It also shows users likely related records that may not be yet linked manually.

The block was built so as not to send any data out of the DB or browser for processing anywhere outside. However, this is also why it takes longer to compute than it could. A version using cloud APIs would be much faster but also more intricate for the average user to get going in terms of tech, licensing, privacy, etc. This block allows users to immediately apply this tech to their bases and consider how to scale from there.

The hope is it will be useful at the point when a user has grown their base beyond search-by-scrolling. Views are very helpful but they end at keyword matching and fixed categorization logic. With time, the terminology and schemes used by users drift and start missing marks. The block extends from there with semantic and contextual search and UI.

How I built it

This block was made possible thanks to the awesome examples provided by the Airtable team, and awesome ports of the key algorithms to JavaScript by the open-source community. The first key algorithm is the Universal Sentence Encoder (USE) which is trained on GBs of English language and projects any sentence into a 512-dimensional vector space so that one can calculate similarities and other relationships. In particular a mini version of USE with 8K vocabulary and able to run out of ~25MBs. The next key algorithm is UMAP dimensionality reduction which can take the 512D vectors and project them into a 2D space, so we can plot them so that our eyes can intuitively pick-up even more relationships. Therefore, the block weaves the power of machine and human intelligence.

Challenges I ran into

My biggest challenge was learning JavaScript, and React in particular. My background has been scientific and backend computing. Another challenge was finding the libraries and methods that can make this possible in a browser engine.

What I learned

JavaScript & React & about the ecosystem around related tech! It stretched my mind, but I am grateful to get a peek into how the frontend tech is evolving. And to become more capable now in that area for my own projects.

What's next for the “Interactive Knowledge Network” block?

  • Evolving it on both the NLU algs & interactive kGraph UI fronts
    • More options to change/add/delete links/nodes in the GUI
  • Indirect links visibility
  • Multiple tables for link information
  • Adding external NLU services for greater speed and accuracy
  • But also seeing if we can get more out of the local version
  • Fine-tuning of language models on custom data
  • Question-answering powered by the same KDB built interactively
  • More task management perspectives, e.g. using one axis for time
  • Orchestration bots chewing on the KDB connectome
  • Covering numerical data too, as well as attachments and multi-modal data. We can embed all sorts of mixtures into shared vector spaces
  • Clustering on-demand by various algorithms
  • Force directed graphs (maybe 512D forces)
  • Fuzzy links between multiple nodes
  • 3D graphs, maybe eventually in AR/VR

Built With

Share this project:

Updates