The Different Problems of Searching Global and Local Context
Searching via global context and searching via local context are two different problems. While both require the ability to recognize and index websites, global context search is something imminently easier. When you search for tutorial on Python Decorators, facts about Pandas or President of X country, you are not relying on some deeper background information a system needs to infer. Hence, it can direct you relatively easily to the correct source.
Global context search then does not rely on information about the person. It’s invariant between people. Whereas local context, search is heavily influenced by the individual needs of a person.
This distinction of global vs. local is often blurred, though. With some simplifying assumptions thrown in when you want to get some semblance of improved local context. For example, searching for the current weather in the usage of your location seems imminently sensible choice to make, if given no other information. Thus, a general search becomes a local contextual search.
Now, these simplifying assumptions are rarely so simply. Even the weather example may falter if the previous queries simplified idea of location is a leaky assumption. Continuing the example, if I’m flying to Berlin and then ask what is the current weather, taking just my location would now give me an erroneous contextual result. The current context is taken from the previous knowledge about my flight destination.
This simply example of weather is not particularly special though, and certainly there are many people working on variants of it that hold onto the relative context, but once we leave the comfort of simply informational tasks such as the weather the limitations of our tools become apparent.
Our tools our built with global context first approach and local context bolted on. The abstractions are incredibly leaky.
So what would a better tool look like?
Thinking about Local Context
In the opening, I mentioned that the search term, “Python Decorators” as an example of global contextual search. And this is true, in so far we are searching for information about Python Decorators. But rarely would that be the goal of our search. Implicitly, it could be something like:
Look for more details about Python Decorators, I have strong background about wrapped functions, but I’m specifically looking for API design styles related to using decorators in a web framework context. Because currently I’m working on a new ASGI based framework
So the question becomes how do we retrieve this local information to inform the type of search to carry out.
Knows your existing knowledge
Knows what you have checked previously
Knows what you would like to do
Tackling this topic is something I want to explore in later posts. But before I go, wanted to leave you with some ideas.
We have enormous contextual knowledge embedded in our trail of interactions
As a rule, we tend to vary our tastes and knowledge over time and not suddenly
Our local context forms a type of graph, with connections and successful integrations of new knowledge predicated on other local graphs having some affinity match based on our existing graph and directional desire
There is a decaying aspect to the structure of our local graph
And our local graph exists in universe possible other graphs.
One’s we have over time
One’s others have
Ones more built from world knowledge