Is your feature request related to a problem? Please describe.
As presently coded, our conversation tree is constructed every time a user asks for it; it is not cached. Construction of large trees -- and eventually, knowledge graphs -- can be prevented if we create a mechanism for constructing once, persisting, and modifying as needed, those conversation trees and knowledge graphs necessary.
A rooted tree is a simple structure: a Root Node which is recursively, and internally, populated. A knowledge graph is a bit more complex in terms of lists of nodes and lists of edges -- there is an XML schema called GML -- graph markup language.
Describe the solution you'd like
It may be that a tree can be described in GML, or perhaps not; the desired solution should be up to the task's developers, but the solution should satisfy requirements like:
Data in the graph is acquired by creation events elsewhere in the system, such as new quests, topics, or conversation nodes
Data can be persisted to relieve server memory issues
Data can be updated in real-time
Complete trees or graphs, as JSON objects, can be cached for faster response
Is your feature request related to a problem? Please describe. As presently coded, our conversation tree is constructed every time a user asks for it; it is not cached. Construction of large trees -- and eventually, knowledge graphs -- can be prevented if we create a mechanism for constructing once, persisting, and modifying as needed, those conversation trees and knowledge graphs necessary.
A rooted tree is a simple structure: a Root Node which is recursively, and internally, populated. A knowledge graph is a bit more complex in terms of lists of nodes and lists of edges -- there is an XML schema called GML -- graph markup language.
Describe the solution you'd like It may be that a tree can be described in GML, or perhaps not; the desired solution should be up to the task's developers, but the solution should satisfy requirements like:
Data in the graph is acquired by creation events elsewhere in the system, such as new quests, topics, or conversation nodes
Data can be persisted to relieve server memory issues
Data can be updated in real-time
Complete trees or graphs, as JSON objects, can be cached for faster response