What's the Issue?
The ability to easily interact with the schema and edge rule files is not currently available, the end user would have to manually digest the files. The files are not easily deciphered and as they increase in size and number, we need a generic solution to provide an easier way to interact and enable understanding of the schema/edge rules files.
What must the solution provide?
- a generic interface to interact with the schema and edge information, so it can be accessed via end users and microservices
- ability to be configured with any schema given in the set formats (JSON for edge rules, OXM for schema)
- ability to easily communicate to an end user a node’s attributes and edge rules when provided with a node as input
- ability to define the depth (number of traversal hops) and relationship type (ie. child, parent, cousins) when interacting with a singular node. When the depth is provided the solution must communicate the corresponding node’s information (node attribute information, edge information). The relationship type input should act as a filter only retrieving nodes that match the relationship type of the node input.
- ability to filter nodes on metaproperties should be provided (example of metaproperties: required, unique, indexed)
- ability to retrieve a description for each node & attribute to enable ease of user understanding
- ability to retrieve information about a property, when given a property of a node as input
- ability to retrieve information about a metaproperty, when given a meta property of a node's property as input
- ability to retrieve metadata information, when given a metadata field of a node as input (ie DESCRIPTION, DEPENDENT_ON, CONTAINER, NAMESPACE, etc)
- ability to retrieve traversal paths
- return all traversal paths when provided a start and end node
- indicate the shortest path available
- indicate the relative lengths of the other paths
- displayed on a UI sorted by shortest to longest path
- should also provide the ability to optionally provide multiple passthrough nodes, defining the intermediate nodes needing to be visited during the traversal.
- ability to provide information via a GUI
- interaction with nodes (one at a time and multiple) to view their node attributes, edge attributes, and other relative information
- example
- example
- ability to retrieve nodes/edges and display the information based on the various filters aforementioned (depth, relationship type, metproperties, etc)[See example above]
- traversal paths are able to be queried
- example
- example
- interaction with nodes (one at a time and multiple) to view their node attributes, edge attributes, and other relative information
- ability to interact with an end user using a natural language processor
- responds to questions about the schema and edge rules in a conversational format
- extent of the available conversations should cover the features available on the ui
- example
- example
The solution must only depend on schema/edge rules files, it should not load graph data. The solution will not answer questions on the graph data.