Welcome to Roboy Memory Module documentation!

The goal of the project is to provide Roboy with modern graph-based Knowledge Representation.

Roboy should feature ability to remember information about himself:

  • his name
  • his age
  • his origin
  • his location
  • his friends


The same is applicable to Roboy speaking about people who are friends with him. Roboy should tell information about a person or an object and be able to provide basic automatic inference (supported by the graph nature of KR). This way, Roboy Memory Module serves as a long-term memory repository of actionable information acquired by other Roboy modules. Persistency layer is presented by a Neo4j graph database.

Upon incoming request, a Java client will pre-process the request and initiate transaction with the database. Two ways of communication between Roboy Java client and Neo4J database are supported: communication using Neo4J driver operating Cypher query language and Neo4J native Java API. Cypher query language offers more flexible querying while communications via Neo4J Java API are implemented as usage-specific routines. Interfaces are implemented on top of ros through the Java client. The input is any type of information Roboy can retrieve from environment abiding by Knowledge Representation reference in format of Roboy Communication Standard protocol, the output are pieces of data related to the requested scope in the same form.

The current main tasks of this project are:

  • Fill the memory in with all possible information about Roboy team
  • Ensure KR retention
  • Improve KR (more powerful inference)
  • Developing an explicit Neo4j ontology
  • Bringing the Memory Module and the Dialog System together

Relevant Background Information and Pre-Requisites

A User should be familiar with:

  • Knowledge Representation theory
  • graph-based KRs
  • Roboy Communication Protocol
  • Roboy Knowledge Representation Architecture

A Developer should be familiar with:

  • graph-based DBs (preferably Neo4j)
  • Knowledge Representation theory
  • Roboy Communication Protocol
  • Roboy Knowledge Representation Architecture
  • Java programming language
  • Maven automation tool
  • rosjava

Reading list for a User:

Reading list for a Developer:

Requirements Overview

The software requirements define the system from a blackbox/interfaces perspective. They are split into the following sections: