Skip to content

Planning

Steven edited this page Jun 15, 2019 · 13 revisions

Development Steps (Beta 1)

Bug Fixes

  • Issues to Fix:
    • Minimizing the legend sometimes leaves two minimized bars. May have to do with an interaction with schema display.

Configuration

The recent tool bar development looks really good. Here are a few items to prepare features that are ready for production to show and to preserve others for further development:

  • For now, let's hide these tools:
    • Annotation
    • The bar graph

Project Structure

We currently have two copies of requirements.txt. One is at tranql/tranql. The other is at tranql/docker/tranql-base. The second one should be replaced by a link to the first.

  • Create a symbolic link in the repo from the docker tree to the tranql source code for requirements.txt. See this discussion for reference.

Query Management and Help

  1. It's virtually impossible for a new user to make sense of the application at this point. They have neither documentation nor examples to follow. To remedy this:
  • Create a corpus of ten example queries of increasing complexity.
  • Each should have a substantial comment to explain what the query is doing.
  • Provide a tool or other trigger for displaying a list of example queries.
  • Selecting a query in the list should populate the query editor with the text of the query.
  1. Save the state of the query in the query editor in the cache.

  2. Allow the user to review all cached queries. Selecting one should populate the query editor.

  3. Make it possible to minimize the query editor the way we can with the legend.

Production Environment

It's time to move towards a production deployment and towards a new production environment.

Mesos

Production currently runs from a production Mesos cluster. Applications are configured via Marathon and executed in Mesos. This cluster has been up for several years.

Kubernetes (K8s)

We'll be moving production to a Kubernetes cluster.

  • Development: For local development, use Minikube. It is a Kubernetes version for the desktop.
    • If your desktop doesn't host it effectively, we can create a virtual machine.
    • See these steps for installing and using Minikube with TranQL
    • The containing directory contains the pod, deployment, service, and ingress artifacts for TranQL.
  • Production: We are configuring a local Kube cluster. That work is pending. Artifacts deployable to Minikube should be deployable to the new cluster.

Unified Schema

Use TranQL's schema mechanism to address all existing KGS compliant reasoners.

We can currently invoke Robokop and ICEES. The next step is to invoke additional reasoners conforming to the KGS spec. These include Indigo and RTX. See the API registry for details on their APIs. Tasks include:

  • Locate the schema URL for each
  • Create sample requests establishing KGS compliance
  • Create a TranQL backplane endpoint for each managing version incompatibilities.
  • Test direct queries to each backplane endpoint (indigo, rtx).
  • Test incorporation of each reasoner into a schema based query.

Deployment Model

  • Create a Helm Chart for TranQL
  • Parameterize the chart to demonstrate
    • Ability to deploy it in a Minikube development environment with minimal resources
    • Ability to deploy it on a production Kubernetes cluster with more resources
  • Configure the tranql.renci.org reverse proxy to point to the new production deployment. Steps include:
    • Get a RENCI account
    • Get login access to the hosting machine for this NGinx server which is stars.renci.org
    • Find the tranql reverse proxy in /etc/nginx/config.d
    • Modify to point to the Kubernetes ingress for TranQL

Merge Answers

  • Examine the answers component of a knowledge graph. This is the element that binds nodes and edges in the question to values returned in the knowledge_graph.
  • Merge answers from multiple reasoners.
    • This means creating the union of answers from generated sub-questions.
    • For schema based questions, it's more complicated. The portion of the original question (node/edge) must be matched to the content of the answer.

TangeReasoner

Clone this wiki locally