KGSearch is a minimalist tool for searching and viewing entities in a graph and is dedicated to a local environment. The application provides a Python client with three distinct terminal commands: add, start, open. The application default proposes to search through the knowledge graph Countries. You can explore the borders we must cross to get from one country to another and see how small the 🌍 is.
pip install git+https://github.com/raphaelsty/kgsearchThe start command starts the API and opens the user interface:
kg startKGSearch suggests performing multiple queries via the ; separator.
The query france;germany;china will be divided into three subqueries france, germany, and china to visualize the interactions between the entities of our choice.
The top K field allows selecting the number of candidate entities retrieved by the search engine (1 by default).
The neighbours field selects the number of neighbors to be displayed (1 by default).
The prune field removes entities that have fewer than prune connections to other entities (1 by default).
We can add our graph to KGSearch via the command:
kg add -f data.csvThe graph must be saved in CSV format and structured as triples (head, relation, tail) with a comma separator and without column names. Here is an example of a compatible CSV file:
senegal,neighbor,gambia
senegal,neighbor,mauritania
senegal,neighbor,mali
senegal,neighbor,guinea-bissau
senegal,neighbor,guineaWe can also add custom metadata for each entity to be displayed in the user interface using meta -f:
kg meta -f metadata.jsonwhere the metadata.json file has the label of the entity as a key and a set of characteristics:
{
"senegal": {"url": "https://en.wikipedia.org/wiki/senegal"},
"gambia": {"url": "https://en.wikipedia.org/wiki/gambia"},
"mauritania": {"url": "https://en.wikipedia.org/wiki/gambia"},
"mali": {"url": "https://en.wikipedia.org/wiki/mali"},
}If you have already started the application, you can reopen a window with the open command:
kg openThe library Cherche provides the entity search engine. KGSearch relies on a local flask API. The user interface is developed in React and uses the 3D Force-Directed Graph library.
