Knowledge Graphs

A knowledge graph, also known as a semantic network, represents a network of real-world entities—i.e. objects, events, situations, or concepts—and illustrates the relationship between them. This information is usually stored in a graph database and visualised as a graph structure, prompting the term knowledge “graph.”

A knowledge graph is made up of three main components: nodes, edges, and labels. Any object, place, or person can be a node. An edge defines the relationship between the nodes.

Powered by Python’s graph library, GNOSIS creates a complex network of detected objects to find complex patterns. GNOSIS makes use of graphs to represent complex spatial and temporal event patterns in video streams and analyse.

Multi-Video Streaming

GNOSIS can process multiple video streams in near real-time with expressive reasoning over streams.


Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production.

Docker provides the ability to package and run an application in a loosely isolated environment called a container. The isolation and security allow you to run many containers simultaneously on a given host. Containers are lightweight and contain everything needed to run the application, so you do not need to rely on what is currently installed on the host. You can easily share containers while you work, and be sure that everyone you share with gets the same container that works in the same way.

GNOSIS provides multiple Docker containers for quick and efficient deployment of the micro-services present in the framework which makes it easier to work with and promotes easier installation.

Video Query Operations

GNOSIS allows users to express high-level queries to process complex events in video streams. The framework employs Cypher querying language format to allow the users to develop them and manipulate for user-defined analysis.

Cypher is Neo4j’s graph query language that allows users to store and retrieve data from the graph database. Cypher’s syntax provides a visual and logical way to match patterns of nodes and relationships in the graph. It is a declarative, SQL-inspired language for describing visual patterns in graphs using ASCII-Art syntax. It allows us to state what we want to select, insert, update, or delete from our graph data without a description of exactly how to do it. Through Cypher, users can construct expressive and efficient queries to handle needed create, read, update, and delete functionality.


Jaeger is a distributed tracing platform created by Uber Technologies. It can be used for monitoring microservices-based distributed systems:

  • Distributed context propagation
  • Distributed transaction monitoring
  • Root cause analysis
  • Service dependency analysis
  • Performance / latency optimization

GNOSIS uses Jaeger to trace and troubleshoot problems during processing and the logging enables the users easy debugging for better understanding within the system.

Multimodal Processing

GNOSIS processes Multimodal Event Knowledge Graphs to provide a knowledge representation for multimodal event streams’ semantic, spatial, and temporal content.

Configurable Messaging

Bridged by a configurable messaging solution, independent GNOSIS modules interact over standard messaging protocols.