Funnelback knowledge graph provides an alternative way for users to interact with your search index by providing a browseable knowledge graph that is generated from the metadata contained within the content.
A knowledge graph provides sets of connections between different entities or nodes that correspond to relationships that exist in the source data.
Once a knowledge graph is built it can be accessed via a widget that provides browse functionality or can be accessed via an API to supplement existing content or search result pages.
Knowledge graph key concepts
The knowledge graph is constructed from a set of entities (or nodes) that are related to each other.
Each entity or node is a self contained item within the graph and contains a number of properties:
- A unique identifier (or URL) that internally identifies the specific entity or node in the graph.
- A type (or node label) that is used to categorise the entity. e.g. this might be a person, a document or a car
- A set of names (or node names) that identify the individual entity. e.g. for a person entity this might be their name (in different combinations of first and last name), their email address, logon or user id.
- Other fielded properties about the entity.
The unique identifier, type and names are required for an item to be considered a node within the graph.
The other properties are optional and are returned as data for the entity when traversing the knowledge graph and displaying the individual items.
The entities (or nodes) are linked to one another via relationships. There are two types of relationships:
- mentions relationships are detected without any additional configuration if any of an entity's node name values are found in the content of another entity.
- user-defined relationships are configured as part of the profile-level configuration and are detected if any of an entity's node name values are found as a value in a specified metadata field of another entity.
Knowledge graph widget overview
Funnelback includes a widget that can be used to interact with the graph. The widget can be integrated into existing websites or used as a standalone tool.
The diagram above is an example of the widget displaying an entity. The widget consists of a number of regions:
- Entity information: This is the information view of the currently selected entity and includes a number of configurable fields which are all sourced from the entity's fielded properties (which are sourced from underlying metadata in the source content).
- Related entities: This panel presents other entities from the knowledge graph that are related to the currently selected entity. They are grouped by entity type (the central column containing the song, person and album values).
- Relationships: The related entities are sub-grouped by the relationship. The tabs include both mentions and user-defined relationships.
Traversal of the graph is achieved by clicking on the related entities, by running a graph search, or using the widget's breadcrumb navigation.
See also: Configuring the knowledge graph widget
Planning for a knowledge graph
The successful deployment of knowledge graph requires a bit of planning to ensure that the metadata required to populate the graph is present in the source data.
Every content page that should be included as a node within the knowledge graph should include at a minimum a field that contains a single type and fielded information that contains the different name values for the node. The names may be sourced from a number of fields (as per the person example above).
If possible define the two fields directly in your source content as additional metadata fields (note this might mean you end up duplicating some fields - but that is fine because the other fields may be useful to use for presentation).
Building a knowledge graph
The following describes the high-level process which is used by Funnelback to generate the knowledge graph.
- Data is gathered using Funnelback collections.
- Entities are defined in the gathered content using special metadata fields and custom relationships are configured.
- A search index is built incorporating the special metadata.
- The knowledge graph is built by extracting the entities from the index, then analysing the entities for relationships.
Funnelback knowledge graph can be configured on any new or existing collection using the following steps:
Configure datasource collections
Setup the datasource collections as you would for any standard Funnelback search. Create meta collections/profiles corresponding to each graph you wish to build.
Ensure that the appropriate metadata is defined within the datasource collection indexes. This may involve adding external metadata or creating filters.
Define any specific relationships between different entity types.
Update knowledge graph
Build the knowledge graph based on the defined entities and relationships.
The following hook scripts can be used to define custom logic to be executed after the knowledge graph creates CSV files and once the knowledge graph update process is finished.
Customise the knowledge graph widget
Use the administration tools to customise the fields and labels that are displayed within the knowledge graph widget.
Advanced memory options
Users can specify maximum heap memory for neo4j database and knowledge graph update process using the following configuration options.
Accessing the knowledge graph
Alternatively the knowledge graph can also be accessed via a set of API calls. These are available as part of Funnelback's admin API.
Knowledge Graph extends the existing collection architecture to generate entities and relationships. A knowledge graph can be created for every collection and profile combination.
The following describes the elements of the knowledge graph architecture.
- Collections - Contains gathered documents which have been indexed and made available for search. Knowledge graph can be enabled on all collections types including web, push and meta collections.
- Knowledge graph database - A graph database which stores entities are relationships.
- RESTful APIs - Standard mechanism to query content from the Knowledge Graph database.
- Please be aware that IP based restrictions and document level security are not supported by funnelback knowledge graph.