Skip to content
John Interrante edited this page Mar 16, 2022 · 92 revisions

Welcome to the RACK Project

Our ARCOS TA2 team welcomes you to our RACK project. RACK is a research-grade database providing a structured semantic data model tuned to the domain of the DARPA ARCOS program. RACK provides a data ingestion interface for use by ARCOS TA1 performers, a query interface for use by ARCOS TA3 performers, and a data model browsing interface for use by all ARCOS performers. While RACK aims to support the needs of ARCOS performers, we emphasize that RACK is research-grade platform with an evolving data model. See our release schedule here.

Installation Instructions

RACK-in-a-Box (RiB) is a fully functional version of RACK, deployable in a Docker container or as a virtual machine. We use containers because they allow easy deployment of packaged applications including all required libraries and dependencies, without requiring additional effort by the user to install RACK.

RiB runs on Windows, Linux, and MacOS host platforms. We know of no significant resource requirements or version constraints (assuming that your host platform is reasonably current).

Note that there are significant differences between using a Docker container and a VM. Docker containers are faster to transfer and easy to execute, but they do not conveniently allow for session state to easily be retained from one use to the next. In contrast, VM images tend to be very large and somewhat more complex to bring up, but they do allow for saving state and resuming with no lost context. We provide both options. See the section on How to save your changes in Docker here for instructions on how to save state if you choose our Docker distribution.

Getting Started

You can get started with RACK by following the steps on the Getting Started page which walks you through how to load and query data using a simple example that provides a small set of "realistic" evidence. The Turnstile describes a small system that you may see at a security gate. This example is created as a living system and as such is expected to change and evolve with the development of the RACK tool suite. The data is part of the RACK repo and includes CSV files, ingestion templates, and ontology overlays.

Users may also wish to familiarize themselves with RACK's graphical interface called SPARQLgraph. Review the generic SemTK wiki.

APIs and Tools

We provide the following interfaces to RACK. We also provide some tooling to help the end user.

  • CLI: Command-line interface can initialize RiB, import data into RiB from CSV files, and export data from RiB to CSV files. Other useful features are also available. CLI should meet most high-level needs for interacting with the RACK system.
  • ASSIST
  • ASSIST bin tools
  • REST API Swagger: REST calls are available if none of the other interfaces meet your needs. Swagger is one of the many ways a REST API can be explored.

Preparing your own data

Here are some useful topics to help users prepare their own data.

  • Create an ingestion package that can be shared for others to load into RiB.
    • Note: at present, the recommended order of operation is to first clear existing data in RACK, then ingest an entire set of instance data. This is reflected in the instructions on how to create an ingestion package. In the future, we will support the ability to update and "fit" new data into RACK.
  • Several methods to verify the data in RACK

The nature of time in RACK

RACK represents instances of things that have happened, rather than things that might happen or the ways in which things happen in general. That's why activities or entities in RACK typically contain timestamps: they say when things happened or were created (or deleted), for example. When you create data to ingest into RACK, or when you query RACK data to construct an assurance case, remember that it's all about the past.

Data Model

RACK is built on a data model with a core ontology. The data model includes a way to capture the software structure of a system. There is also a MODEL class that can be used on performer-specific ontology overlays.

The core RACK ontology is subject to change. We provide the following changelog to assist with forward compatibility.

Open Questions