diff --git a/.github/workflows/assemble-files.yml b/.github/workflows/assemble-files.yml
index 745e5476..cad11a84 100644
--- a/.github/workflows/assemble-files.yml
+++ b/.github/workflows/assemble-files.yml
@@ -51,17 +51,17 @@ jobs:
- name: Download Fuseki
shell: bash
run: |
- curl -LSfs https://archive.apache.org/dist/jena/binaries/apache-jena-fuseki-4.6.1.tar.gz -o RACK/rack-box/files/fuseki.tar.gz
+ curl -LSfs https://archive.apache.org/dist/jena/binaries/apache-jena-fuseki-4.7.0.tar.gz -o RACK/rack-box/files/fuseki.tar.gz
- name: Download Apache Jena
shell: bash
run: |
- curl -LSfs https://archive.apache.org/dist/jena/binaries/apache-jena-4.6.1.tar.gz -o RACK/rack-box/files/jena.tar.gz
+ curl -LSfs https://archive.apache.org/dist/jena/binaries/apache-jena-4.7.0.tar.gz -o RACK/rack-box/files/jena.tar.gz
- name: Download SemTK
shell: bash
run: |
- curl -LSfs https://github.com/ge-semtk/semtk/releases/download/v2.5.0-20230323/semtk-opensource-v2.5.0-20230323-dist.tar.gz -o RACK/rack-box/files/semtk.tar.gz
+ curl -LSfs https://github.com/ge-semtk/semtk/releases/download/v2.5.0-20230425/semtk-opensource-v2.5.0-20230425-dist.tar.gz -o RACK/rack-box/files/semtk.tar.gz
- name: Download CSS stylesheet
shell: bash
diff --git a/.github/workflows/assemble-turnstile-data.yml b/.github/workflows/assemble-turnstile-data.yml
new file mode 100644
index 00000000..0b0d265e
--- /dev/null
+++ b/.github/workflows/assemble-turnstile-data.yml
@@ -0,0 +1,61 @@
+# Assembles Turnstile ingestion package (reusable workflow)
+
+on:
+ workflow_call:
+
+jobs:
+
+# assemble-turnstile-data job:
+# - Downloads rack-box files from artifacts
+# - Unpacks CLI wheels and OWL/CDR files
+# - Assembles Turnstile ingestion package
+# - Uploads ingestion package to artifacts or release
+
+ assemble-turnstile-data:
+ runs-on: ubuntu-22.04
+
+ steps:
+ - name: Check out RACK source
+ uses: actions/checkout@v3
+ with:
+ repository: ge-high-assurance/RACK
+ path: RACK
+
+ - name: Download rack-box files from artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: rack-box-files
+ path: RACK/rack-box/files
+
+ - name: Unpack CLI wheels and OWL/CDR files
+ run: |
+ tar xfz RACK/rack-box/files/rack-cli.tar.gz
+ tar xfz RACK/rack-box/files/rack.tar.gz
+
+ - name: Install RACK CLI
+ run: |
+ pip3 install RACK/cli/wheels/*.whl
+ sudo apt-get install -qq --yes swi-prolog
+
+ - name: Assemble Turnstile ingestion package
+ run: |
+ RACK/Turnstile-Example/Assemble-TurnstileData.sh
+
+ - name: Upload ingestion package to artifacts
+ uses: actions/upload-artifact@v3
+ if: github.event_name != 'release'
+ with:
+ name: turnstile-ingestion-package.zip
+ path: |
+ RACK/Turnstile-Example/turnstile-ingestion-package.zip
+
+ # softprops/action-gh-release has many issues and PRs filed
+ # against it; replace it with "gh release upload" if CI fails
+ # run: gh release upload ${{ github.event.release.tag_name }} RACK/Turnstile-Example/turnstile-ingestion-package.zip --clobber
+
+ - name: Upload ingestion package to release
+ uses: softprops/action-gh-release@v1
+ if: github.event_name == 'release'
+ with:
+ files: |
+ RACK/Turnstile-Example/turnstile-ingestion-package.zip
diff --git a/.github/workflows/build-virtual-machine.yml b/.github/workflows/build-virtual-machine.yml
index fda5d91f..9cc8b310 100644
--- a/.github/workflows/build-virtual-machine.yml
+++ b/.github/workflows/build-virtual-machine.yml
@@ -13,7 +13,7 @@ jobs:
# build-virtual-machine job:
# - Downloads rack-box files from artifacts
# - Builds rack-box virtual machine
-# - Uploads virtual machine to artifacts or releases
+# - Uploads virtual machine to artifacts or release
build-virtual-machine:
runs-on: macos-12
@@ -64,7 +64,7 @@ jobs:
# against it; replace it with "gh release upload" if CI fails
# run: gh release upload ${{ github.event.release.tag_name }} RACK/rack-box/GitHub-Release-README.md RACK/rack-box/rack-box-${{ inputs.version }}.zip* --clobber
- - name: Upload virtual machine to releases
+ - name: Upload virtual machine to release
uses: softprops/action-gh-release@v1
if: github.event_name == 'release'
with:
diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml
index 9c0f837b..9c176840 100644
--- a/.github/workflows/continuous.yml
+++ b/.github/workflows/continuous.yml
@@ -3,8 +3,8 @@
name: RACK Continuous Integration Workflow
on:
push:
- branches: [ '**' ]
- tags-ignore: [ '**' ]
+ branches: [ '*' ]
+ tags-ignore: [ '*' ]
jobs:
@@ -45,8 +45,6 @@ jobs:
- name: Lint RACK Ontology
run: |
- sudo apt-add-repository ppa:swi-prolog/stable
- sudo apt-get update -qq --yes
sudo apt-get install -qq --yes swi-prolog
./assist/bin/check
diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml
index 423404a9..9f616a68 100644
--- a/.github/workflows/manual.yml
+++ b/.github/workflows/manual.yml
@@ -2,7 +2,7 @@
name: RACK Build Virtual Machine Workflow
on:
- workflow_dispatch:
+ workflow_dispatch:
inputs:
version:
required: false
@@ -17,9 +17,18 @@ jobs:
assemble-files:
uses: ./.github/workflows/assemble-files.yml
+# assemble-turnstile-data job:
+# - Assembles Turnstile ingestion package
+# - Uploads ingestion package to artifacts
+
+ assemble-turnstile-data:
+ needs: assemble-files
+ uses: ./.github/workflows/assemble-turnstile-data.yml
+ secrets: inherit
+
# build-virtual-machine job:
# - Builds rack-box virtual machine
-# - Uploads virtual machine to workflow
+# - Uploads virtual machine to artifacts
build-virtual-machine:
needs: assemble-files
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 87bd64cf..b571fb23 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -13,6 +13,15 @@ jobs:
assemble-files:
uses: ./.github/workflows/assemble-files.yml
+# assemble-turnstile-data job:
+# - Assembles Turnstile ingestion package
+# - Uploads ingestion package to release
+
+ assemble-turnstile-data:
+ needs: assemble-files
+ uses: ./.github/workflows/assemble-turnstile-data.yml
+ secrets: inherit
+
# build-docker-image job:
# - Builds rack-box docker image
# - Pushes docker image to Docker Hub
diff --git a/.github/workflows/update-wiki.yml b/.github/workflows/update-wiki.yml
index 62d34d13..79a3f438 100644
--- a/.github/workflows/update-wiki.yml
+++ b/.github/workflows/update-wiki.yml
@@ -5,7 +5,7 @@ on:
push:
branches: [ master ]
paths:
- - 'nodegroups/queries/store_data.csv'
+ - 'RACK-Ontology/nodegroups/store_data.csv'
jobs:
@@ -27,7 +27,7 @@ jobs:
with:
repository: ge-high-assurance/RACK.wiki
path: RACK.wiki
-
+
- name: Set up Python
uses: actions/setup-python@v4
with:
@@ -47,10 +47,10 @@ jobs:
- name: Install csvtomd
run: |
pip3 install csvtomd --user
-
+
- name: Update query wiki page
run: |
- csvtomd RACK/nodegroups/queries/store_data.csv > temp.md
+ csvtomd RACK/RACK-Ontology/nodegroups/store_data.csv > temp.md
cat RACK.wiki/_RACK-Predefined-Queries-header.md temp.md RACK.wiki/_RACK-Predefined-Queries-footer.md > RACK.wiki/RACK-Predefined-Queries.md
cd RACK.wiki
git config user.name github-actions
diff --git a/.gitignore b/.gitignore
index 9defa3d9..d8bb3a9f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -66,7 +66,9 @@ cli/.project
/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationImplementation/*.exe
/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationImplementation/*.gz
/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationImplementation/*.o
+/Turnstile-Example/turnstile-ingestion-package.zip
rack-ui/cache/
+rack-ui/config/config-override.yml
rack-ui/.project
EntityResolution/.project
EntityResolution/Resolutions/Summary.csv
diff --git a/Boeing-Ontology/OwlModels/ont-policy.rdf b/Boeing-Ontology/OwlModels/ont-policy.rdf
deleted file mode 100644
index 7e45e3ff..00000000
--- a/Boeing-Ontology/OwlModels/ont-policy.rdf
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
- platform:/resource/Boeing-Ontology/ontology/Boeing.sadl
-
-
- SADL
- BoeingModel
-
-
-
-
-
-
- SADL
- sadlbasemodel
-
-
- platform:/resource/Boeing-Ontology/ImplicitModel/SadlImplicitModel.sadl
-
-
- SADL
- sadlimplicitmodel
-
-
-
- platform:/resource/Boeing-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
-
-
- SADL
- builtinfunctions
-
-
-
-
-
-
- SADL
- sadllistmodel
-
-
diff --git a/EntityResolution/manifest.yaml b/EntityResolution/manifest.yaml
new file mode 100644
index 00000000..4ed2854f
--- /dev/null
+++ b/EntityResolution/manifest.yaml
@@ -0,0 +1,19 @@
+name: 'Entity Resolution'
+
+copy-to-default-graph: true
+perform-entity-resolution: true
+perform-triplestore-optimization: true
+
+footprint:
+ model-graphs:
+ - http://rack001/model
+ data-graphs:
+ - http://rack001/data
+
+steps:
+ - manifest: ../RACK-Ontology/manifest.yaml
+ - data: TestData/Package-1/import.yaml
+ - data: TestData/Package-2/import.yaml
+ - data: TestData/Package-3/import.yaml
+ - data: TestData/Resolutions-1/import.yaml
+ - data: TestData/Resolutions-2/import.yaml
diff --git a/GE-Ontology/OwlModels/ont-policy.rdf b/GE-Ontology/OwlModels/ont-policy.rdf
deleted file mode 100644
index 356dd505..00000000
--- a/GE-Ontology/OwlModels/ont-policy.rdf
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-
- SADL
- turnstile
- platform:/resource/GE-Ontology/ontology/GE.sadl
-
-
- platform:/resource/GE-Ontology/ImplicitModel/SadlImplicitModel.sadl
-
-
- SADL
- sadlimplicitmodel
-
-
-
- platform:/resource/GE-Ontology/ontology/CPS.sadl
-
-
- SADL
- CPS
-
-
-
-
-
-
- SADL
- sadlbasemodel
-
-
-
-
-
- SADL
- sadllistmodel
-
-
- platform:/resource/GE-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
-
-
- SADL
- builtinfunctions
-
-
-
diff --git a/GrammaTech-Ontology/OwlModels/ont-policy.rdf b/GrammaTech-Ontology/OwlModels/ont-policy.rdf
deleted file mode 100644
index 93e9d63d..00000000
--- a/GrammaTech-Ontology/OwlModels/ont-policy.rdf
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
- SADL
- sadllistmodel
-
-
- platform:/resource/GrammaTech-Ontology/ontology/GrammaTech.sadl
-
-
- SADL
- Acert
-
-
-
- platform:/resource/GrammaTech-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
-
-
- SADL
- builtinfunctions
-
-
-
-
-
-
- SADL
- sadlbasemodel
-
-
- platform:/resource/GrammaTech-Ontology/ImplicitModel/SadlImplicitModel.sadl
-
-
- SADL
- sadlimplicitmodel
-
-
-
diff --git a/LM-Ontology/OwlModels/ont-policy.rdf b/LM-Ontology/OwlModels/ont-policy.rdf
deleted file mode 100644
index f00ac878..00000000
--- a/LM-Ontology/OwlModels/ont-policy.rdf
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
- platform:/resource/LM-Ontology/ontology/LM.sadl
-
-
- SADL
- sacm
-
-
-
- platform:/resource/LM-Ontology/ImplicitModel/SadlImplicitModel.sadl
-
-
- SADL
- sadlimplicitmodel
-
-
-
- platform:/resource/LM-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
-
-
- SADL
- builtinfunctions
-
-
-
-
-
-
- SADL
- sadlbasemodel
-
-
-
-
-
- SADL
- sadllistmodel
-
-
diff --git a/Provenance-Example/OwlModels/ont-policy.rdf b/Provenance-Example/OwlModels/ont-policy.rdf
deleted file mode 100644
index dd105a96..00000000
--- a/Provenance-Example/OwlModels/ont-policy.rdf
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
- platform:/resource/Provenance-Example/ImplicitModel/SadlImplicitModel.sadl
-
-
- SADL
- sadlimplicitmodel
-
-
-
-
-
-
- SADL
- sadlbasemodel
-
-
- platform:/resource/Provenance-Example/ImplicitModel/SadlBuiltinFunctions.sadl
-
-
- SADL
- builtinfunctions
-
-
-
-
-
-
- SADL
- sadllistmodel
-
-
diff --git a/RACK-Ontology/Graphs/TESTING_scoped.dot b/RACK-Ontology/Graphs/TESTING_scoped.dot
new file mode 100644
index 00000000..f21321dc
--- /dev/null
+++ b/RACK-Ontology/Graphs/TESTING_scoped.dot
@@ -0,0 +1,247 @@
+// This is a graphical representation of the core TESTING ontology and some of
+// the surrounding elements that connect to it.
+//
+// Different portions of the RACK_Ontology have different colorizations, and
+// ACTIVITIES have doubled borders.
+//
+// This has every TESTING ontology element, but is a representational subset of
+// the various properties and surrounding elements; a full representation is too
+// verbose to be useful, so the items shown here should be chosen judiciously.
+
+digraph RACK {
+ edge [ decorate=true ];
+ node [ style=filled ];
+
+ subgraph PROV_S {
+ node [ root=true ];
+ THING [ shape=record, label = "{ THING | identifier::string | title::string | description::string }" ];
+ THING -> ACTIVITY [ label = "dataInsertedBy" ];
+ THING -> ENTITY;
+ ENTITY [ shape=record, label = "{ ENTITY | generatedAtTime::dateTime | invalidatedAtTime::dateTime | entityURL::string }" ];
+ ENTITY -> ENTITY [ label = "wasDerivedFrom" ];
+ ENTITY -> ENTITY [ label = "wasRevisionOf" ];
+ ENTITY -> ENTITY [ label = "wasImpactedBy" ];
+ ENTITY -> ACTIVITY [ label = "wasGeneratedBy" ];
+ ENTITY -> AGENT [ label = "wasAttributedTo" ];
+ COLLECTION -> ENTITY [ label = "content" ];
+ ENTITY -> COLLECTION;
+ THING -> AGENT;
+ AGENT -> AGENT [ root=true, label = "actedOnBehalfOf" ];
+ ACTIVITY [ shape=record, label = "{ ACTIVITY | startedAtTime::dateTime | endedAtTime::dateTime }", peripheries=2 ];
+ ACTIVITY -> AGENT [ label = "wasAssociatedWith" ];
+ ACTIVITY -> ACTIVITY [ label = "wasInformedBy" ];
+ ACTIVITY -> ENTITY [ label = "goal" ];
+ ACTIVITY -> ENTITY [ label = "used" ];
+ };
+
+ subgraph cluster_TESTING {
+ node [ color = "red", fillcolor="lightcoral" ];
+ edge [ color = "red" ];
+
+ TEST [ label = "TEST\n:: ENTITY" ];
+ TEST -> ENTITY [ label = "verifies" ];
+
+ TEST_PROCEDURE [ label = "TEST_PROCEDURE\n:: COLLECTION" ];
+ // TEST_PROCEDURE -> COLLECTION [ color="black", weight=10, style="bold" ];
+ TEST_PROCEDURE -> TEST_STEP [ label = "independentTest" ];
+
+ TEST_STEP [ label = "TEST_STEP\n:: ENTITY" ];
+ // TEST_STEP -> COLLECTION [ color="black", weight=10, style="bold" ];
+ TEST_STEP -> TEST [ label = "thisStep" ];
+ TEST_STEP -> TEST_STEP [ label = "nextStep [*]"; ];
+
+ TEST_STATUS -> tsts;
+ tsts [ shape=record, label = "{ Passed | Failed | Indeterminate }" ];
+
+ TEST_LOG [ label = "TEST_LOG\n:: COLLECTION" ];
+ // TEST_LOG -> COLLECTION [ color="black" ];
+ TEST_LOG -> TEST_RECORD [ label = "content" ];
+
+ TEST_RESULT [ label = "TEST_RESULT\n:: ENTITY" ];
+ // TEST_RESULT -> ENTITY [ color="black" ];
+ TEST_RESULT -> TEST_STATUS [ label = "result" ];
+ TEST_RESULT -> TEST [ label = "confirms" ];
+
+ TEST_RECORD [ label = "TEST_RECORD\n:: ENTITY" ];
+ // TEST_RECORD -> COLLECTION [ color="black" ];
+ TEST_RECORD -> TEST_PROCEDURE [ label = "testRecordProcedure" ];
+ TEST_RECORD -> ENTITY [ label = "testConfiguration" ];
+ TEST_RECORD -> TEST_STEP [ label = "testRecordSteps" ];
+ TEST_RECORD -> FILE [ label = "targetPackage" ];
+ TEST_RECORD -> string [ label = "targetVersion" ];
+ TEST_RECORD -> FILE [ label = "testPackage" ];
+ TEST_RECORD -> string [ label = "testVersion" ];
+
+ TEST_EXECUTION [ peripheries=2 ];
+ TEST_EXECUTION [ label = "TEST_EXECUTION\n:: ACTIVITY" ];
+ // TEST_EXECUTION -> ACTIVITY [ color="black" ];
+ TEST_EXECUTION -> TEST_PROCEDURE [ label = "testProcedure" ];
+ TEST_EXECUTION -> TEST_LOG [ label = "testLog" ];
+ TEST_RESULT -> TEST_EXECUTION [ label = "wasGeneratedBy" ];
+
+ TEST_ANNOTATION [ label = "TEST_ANNOTATION\n:: ENTITY" ];
+ TEST_ANNOTATION -> TEST_RESULT [ label = "annotatedResult" ];
+ // TEST_ANNOTATION -> ACTIVITY [ label = "wasGeneratedBy" ];
+ TEST_ANNOTATION -> TstAnnotations [ label = "annotatedValue" ];
+ TstAnnotations [ shape=record, label = "{ IgnoredFailureOOB }" ];
+
+ TEST_DEVELOPMENT [ peripheries=2 ];
+ TEST -> TEST_DEVELOPMENT [ label = "wasGeneratedBy" ];
+ TEST_DEVELOPMENT [ label = "TEST_DEVELOPMENT\n:: ACTIVITY" ];
+ // TEST_DEVELOPMENT -> ACTIVITY [ color="black" ];
+ };
+
+ subgraph REQUIREMENTS {
+ node [ color = "blue", fillcolor="cyan" ];
+ edge [ color = "blue" ];
+ REQUIREMENT [ label = "REQUIREMENT\n:: ENTITY" ];
+ // REQUIREMENT -> ENTITY [ color="black" ];
+ REQUIREMENT -> ENTITY [ label = "governs" ];
+ REQUIREMENT -> ENTITY [ label = "satisfies" ];
+ REQUIREMENT -> ENTITY [ label = "mitigates" ];
+ REQUIREMENT -> REQUIREMENT_DEVELOPMENT [ decorate=true, label = "wasGeneratedBy" ];
+ DATA_DICTIONARY_TERM [ label = "DATA_DICTIONARY_TERM\n:: ENTITY" ];
+ // DATA_DICTIONARY_TERM -> ENTITY [ color="black" ];
+ DATA_DICTIONARY_TERM -> ENTITY [ label = "providedBy" ];
+ DATA_DICTIONARY_TERM -> ENTITY [ label = "consumedBy" ];
+ REQUIREMENT_DEVELOPMENT [ peripheries=2, label = "REQUIREMENT_DEVELOPMENT\n:: ACTIVITY" ];
+ // REQUIREMENT_DEVELOPMENT -> ACTIVITY [ color="black" ];
+ REQUIREMENT_DEVELOPMENT -> ENTITY [ label = "referenced" ];
+ REQUIREMENT_DEVELOPMENT -> ENTITY [ label = "governedBy" ];
+ };
+
+ subgraph DOC {
+ node [ color="green", fillcolor="lightgreen" ];
+ edge [ color="green" ];
+ DOCUMENT [ label = "DOCUMENT\n:: COLLECTION" ];
+ // DOCUMENT -> COLLECTION [ color="black" ];
+ DOCUMENT -> DOC_STATUS [ label="status" ];
+ DOCUMENT -> AGENT [ label="issuingOrganization" ];
+ DOCUMENT -> AGENT [ label="approvalAuthority" ];
+ DOCUMENT -> ENTITY [ label="references" ];
+ DOC_STATUS -> dsts;
+ dsts [ shape=record, decorate=true, label = "{ In_Development | Released | Withdrawn }" ];
+ DESCRIPTION -> DOCUMENT;
+ PLAN -> DOCUMENT;
+ PROCEDURE -> DOCUMENT;
+ REPORT -> DOCUMENT;
+ REQUEST -> DOCUMENT;
+ SPECIFICATION -> DOCUMENT;
+ SECTION [ label = "SECTION\n:: COLLECTION" ];
+ // SECTION -> COLLECTION [ color="black" ];
+ };
+
+ subgraph SOFTWARE {
+ node [ color="brown", fillcolor="tan" ];
+ edge [ color="brown" ];
+ SWCOMPONENT [ label = "SWCOMPONENT\n:: ENTITY" ];
+ // SWCOMPONENT -> ENTITY [ color="black" ];
+ SWCOMPONENT_TYPE [ label = "SWCOMPONENT_TYPE\n:: THING" ];
+ // SWCOMPONENT_TYPE -> THING [ color="black" ];
+ SWCOMPONENT -> SWCOMPONENT_TYPE [ label="componentType" ];
+ };
+
+ subgraph SYS {
+ node [ color="purple", fillcolor="lavender" ];
+ edge [ color="purple" ];
+ SYSTEM [ label = "SYSTEM\n:: ENTITY" ];
+ // SYSTEM -> ENTITY [ color="black" ];
+ SYSTEM -> SYSTEM [ label="partOf" ];
+ SYSTEM -> FUNCTION [ label="provides" ];
+ SYSTEM -> FUNCTION [ label="requires" ];
+ SYSTEM -> FUNCTION [ label="function" ];
+ SYSTEM -> SYSTEM_DEVELOPMENT [ label="wasGeneratedBy" ];
+ INTERFACE [ label = "INTERFACE\n:: ENTITY" ];
+ // INTERFACE -> ENTITY [ color="black" ];
+ INTERFACE -> SYSTEM [ label="source" ];
+ INTERFACE -> SYSTEM [ label="destination" ];
+ SYSTEM_DEVELOPMENT [ peripheries=2, label = "SYSTEM_DEVELOPMENT\n:: ACTIVITY" ];
+ FUNCTION [ label = "FUNCTION\n:: ENTITY" ];
+ // FUNCTION -> ENTITY [ color="black" ];
+ FUNCTION -> FUNCTION [ label="parentFunction" ];
+ OP_ENV [ label = "OP_ENV\n:: THING" ];
+ // OP_ENV -> THING;
+ OP_PROCEDURE -> PROCEDURE;
+ };
+
+ subgraph Boeing {
+ node [ fillcolor="yellow" ];
+ SRS_Doc [ color="green" ];
+ PIDS_Doc [ color="green" ];
+ SubDD_Doc [ color="green" ];
+ SRS_Doc [ color="green" ];
+ SRS_Doc -> DOCUMENT [ color="green", weight=10, style="bold" ];
+ SRS_Doc -> SRS_Req [ label="> content" ];
+ PIDS_Doc -> DOCUMENT [ color="green", weight=10, style="bold" ];
+ PIDS_Doc -> PIDS_Req [ label="> content" ];
+ SubDD_Doc -> DOCUMENT [ color="green", weight=10, style="bold" ];
+ SubDD_Doc -> SubDD_Req [ label="> content" ];
+
+ PIDS_Req [ color="blue" ];
+ CSID_Req [ color="blue" ];
+ SRS_Req [ color="blue" ];
+ SubDD_Req [ color="blue" ];
+ PIDS_Req -> REQUIREMENT [ color="blue", weight=10, style="bold" ];
+ CSID_Req -> REQUIREMENT [ color="blue", weight=10, style="bold" ];
+ SRS_Req -> REQUIREMENT [ color="blue", weight=10, style="bold" ];
+ SubDD_Req -> REQUIREMENT [ color="blue", weight=10, style="bold" ];
+ SubDD_Req -> SRS_Req [ label="> satisfies" ];
+
+ SBVT_Test [ color="red" ];
+ SBVT_Result [ color="red" ];
+ SBVT_Test -> TEST [ color="red", weight=10, style="bold" ];
+ SBVT_Result -> TEST_RESULT [ color="red", weight=10, style="bold" ];
+ SBVT_Result -> SBVT_Test [ label="> confirms" ];
+ SBVT_Test_Procedure [ color="red" ];
+ SBVT_Test_Procedure -> TEST_PROCEDURE [ color="red", weight=10, style="bold" ];
+ SBVT_Test_Procedure -> SBVT_Test_Step
+
+ Message [ color="purple" ];
+ Message -> INTERFACE [ color="purple", weight=10, style="bold" ];
+ Signal [ color="blue" ];
+ Signal -> DATA_DICTIONARY_TERM [ color="blue", weight=10, style="bold" ];
+ Signal -> Message [ label="message" ];
+
+ SBVT_Test_Step [ color="red" ];
+ SBVT_Test_Step -> TEST_STEP [ color="red", weight=10, style="bold" ];
+ SBVT_Test_Step -> Signal [ label="stimulates" ];
+ SBVT_Test_Step -> Signal [ label="observes" ];
+ SBVT_Test_Step -> SBVT_Test_Step [ label="> nextStep" ];
+ SBVT_Test_Log [ color="red" ];
+ SBVT_Test_Log -> TEST_LOG [ color="red", weight=10, style="bold" ];
+ SBVT_Test_Log -> SBVT_Test_Record [ label="> content" ];
+ SBVT_Test_Record [ color="red" ];
+ SBVT_Test_Record -> TEST_RECORD [ color="red", weight=10, style="bold" ];
+ SBVT_Test_Record -> SBVT_Test_Step [ label="> logs" ];
+ IDD_Test_Result [ color="red" ];
+ IDD_Test_Result -> TEST_RESULT [ color="red", weight=10, style="bold" ];
+ IDD_Test_Result -> IDD_Test [ label="> confirms" ];
+
+ IDD [ color="purple" ];
+ IDD -> INTERFACE [ color="purple", weight=10, style="bold" ];
+ IDD_Doc [ color="blue" ];
+ IDD_Doc -> DOCUMENT [ color="blue", weight=10, style="bold" ];
+ IDD_Test [ color="red" ];
+ IDD_Test -> TEST [ color="red" ];
+ IDDCoverageAnalysis -> ANALYSIS [ weight=10, style="bold" ];
+ IDDCoverageAnalysis -> IDD_Test [ label="analysisInput" ];
+ IDDCoverageAnalysisResult [ color="red" ];
+ IDDCoverageAnalysisResult -> TEST_RESULT [ color="red", weight=10, style="bold" ];
+ IDDCoverageAnalysisResult -> IDD_Test [ label="confirms" ];
+
+ Test_Station -> AGENT [ color="black", weight=10, style="bold" ];
+ SBVT_Test_Execution [ color="red", peripheries=2 ];
+ SBVT_Test_Execution -> TEST_EXECUTION [ color="red", weight=10, style="bold" ];
+ SBVT_Test_Execution -> SBVT_Test_Procedure [ label="testProcedure" ];
+ SBVT_Test_Execution -> SYSTEM [ label="systemUnderTest", weight=10, style="bold" ];
+ SBVT_Test_Execution -> BuildVersion [ label="systemUnderTestBuildVersion" ];
+ SBVT_Test_Execution -> Database [ label="databaseVersion" ];
+ SBVT_Test_Execution -> Test_Station [ label="testStation" ];
+ SBVT_Test_Execution -> Executable [ label="buildVersion" ];
+
+ SBVT_Test_Log -> SBVT_Test_Execution [ label="testExecution [1]" ];
+
+ Database -> SWCOMPONENT [ color="brown", weight=10, style="bold" ];
+ Executable -> SWCOMPONENT [ color="brown", weight=10, style="bold" ];
+ }
+}
diff --git a/RACK-Ontology/Graphs/TESTING_scoped.svg b/RACK-Ontology/Graphs/TESTING_scoped.svg
new file mode 100644
index 00000000..f46c6d34
--- /dev/null
+++ b/RACK-Ontology/Graphs/TESTING_scoped.svg
@@ -0,0 +1,1289 @@
+
+
+
+
+
diff --git a/RACK-Ontology/Orienteering.md b/RACK-Ontology/Orienteering.md
new file mode 100644
index 00000000..78d6feee
--- /dev/null
+++ b/RACK-Ontology/Orienteering.md
@@ -0,0 +1,525 @@
+The core RACK ontology defines a set of general relationships that is intended to
+provide a framework for the organization and representation of data collected for
+the system. In many areas, this core ontology is very generic to allow for
+different program configurations and methodologies; it is expected that
+program-specific overlays will be developed to further refine and constrain the
+relationships described here.
+
+This document provides general perspective on how this core ontology is
+establishing the relationship frameworks and constraints on those relationships.
+This can be used from the perspective of asking particular questions about the
+data in RACK and formulating retrieval.
+
+# Terms
+
+Terminology used throughout this document:
+
+ * Program: a development effort for a particular goal, such as "creating the
+ software to install on specific drone hardware to allow for a specific use".
+
+ * Target: the output executable software generated via a Program's efforts that
+ will be installed.
+
+ * Thing Tested: each test should be identified with a particular element of the
+ Program (e.g. requirement, software unit, etc.) and there should also be
+ traceability of the test to the particular (sub-)set of code being tested.
+
+ * Area of Concern: A program is often comprised of a number of inter-related
+ activities (areas of concern), including (but not limited to):
+
+ * Requirements Development
+ * System Architecture
+ * Software Design
+ * Target Code Development
+ * Build and Deploy Operational Processes
+ * Testing Development
+ * Evaluation and Certification
+
+
+# Traceability
+
+Each of the areas of concern has a set of established practices and
+state-of-the-art tools and techniques, but often the relationships *between* the
+different activities is manually established through loosely coupled mechanisms
+like documentation and other out-of-band communications.
+
+One of the goals of RACK is to establish *traceability*, which is an explicit
+identification of the relationships between these areas to allow one to trace the
+information from one area through to the other areas. This traceability helps to
+ensure that each activity is sufficient and complete relative to the surrounding
+areas of concern.
+
+# Testing
+
+Many programs that will be described by RACK data describe programs which use
+"requirements-based testing", which is a methodology of developing tests based on
+the *requirements* documentation (as opposed to, for example, coverage testing,
+which is based on the source code). However, the core RACK ontology should be
+developed to support many different types of testing approaches, so the core
+ontology is defined with a level of generality that should allow sufficient
+flexibility to capture a particular testing approach in a program-specific
+overlay.
+
+## Testing Concerns
+
+To this end, the RACK ontology should support the following relationships and/or
+requests:
+
+ * TC1: The ontology should support multiple different types of tests, even
+ within the same program.
+
+ * TC2: There should be a heirarchical arrangement of testing implementation,
+ where
+
+ * 1: the lowest level captures a single element of functionality in the
+ target and has a disposition indicating whether that particular
+ functional element has passed or failed
+ * 2: the tests can be grouped by higher level concerns (see below)
+
+ * TC3: The same set of target code may have multiple tests that verify the code
+ with different inputs or different operational configurations.
+
+ * TC4: Each test should have a relationship to the inputs and surrounding
+ configuration to distinguish it from other tests.
+
+ * TC5: Tests may have a sequential ordering constraint that requires previous
+ tests to be run prior to running a particular test due to a configuration
+ established by a previous test or to validate the transition of the target
+ from one state to the next. This ordering is also normal important because the
+ re-certification of a modified target may require re-running this entire set
+ of related tests if *any* of them tests the modified portion of the target.
+
+ * TC6: Tests may be independent of each other: they may be run without running
+ other independent sets and the results are sufficient and valid. This is
+ important for re-certification because independent tests that verify a
+ non-modified portion of the target do not need to be re-executed.
+
+ 1. At the top-level, test collections will tend to be independent, and only
+ at the bottom-most granular level will the sequential relations between
+ tests be expressible, therefore TC5 must be contained within TC6 rather
+ than the other way around.
+
+ * TC7: Test failures may be resolved by a number of methods:
+
+ * 1: testing a new version of the target
+ * 2: running a new version of the tests
+ * 3: user-provided documentation justifying discarding the test failure
+
+ Note that change (1) may be associated with corresponding changes in other
+ areas of concern (e.g. an updated version of the requirements document,
+ indicating expectation of different target results than the previous version
+ specified).
+
+ * TC8: Tests may be run multiple times. These test runs are subject to the
+ following considerations:
+
+ * 1 - Idempotence: It is expected (from the RACK perspective) that tests are
+ deterministic: re-running the same tests on the same target yield the same
+ results. If tests are non-deterministic, this should be encapsulated in
+ the test itself; loading a test result in RACK should be a conclusive
+ statement about that test's disposition relative to a specific target.
+
+ * 2 - Target sensitivity: Running tests against a specific version of an
+ target provides *no* information about the results that would be obtained
+ by running the same set of tests against a different version of the
+ target.
+
+ * 3 - Velocity: test results obtained from successive test runs on updated
+ target versions may have more or fewer test failures over the aggregate
+ run. This relative change between target versions is referred to as the
+ test "velocity" (aka, the first order derivative) where a positive
+ velocity indicates a larger quantity of test success results and a general
+ improvement in the status of the target. [Velocity is perhaps the least
+ important aspect for consideration in RACK.]
+
+ * 4 - Subset testing: it may be possible that a test run consists of only a
+ subset of the tests. This is actually a desireable situation in going
+ forward with utilizing ARCOS: targeted re-certification should need to
+ re-verify the smallest reasonable portion of the target.
+
+ Each instance of testing should be encapsulated in a manner that it can be
+ distinguished from other instances, which supports evaluation under the
+ considerations listed above.
+
+ * TC9: Test development itself is an activity, independent of running tests,
+ and tests are built artifacts that will change over time.
+
+ * TC10: Tests will verify something. That something could be a requirement, a
+ source code function, etc. There should be an association between the test
+ and an element in another area of concern; tests which do not validate an
+ element are irrelevant for the purposes of RACK.
+
+ * TC11: Regardless of the specific thing that a test is verifying, a Test is
+ run against a specific system or group of systems to validate the behavior of
+ that system, where a system is the primary architectural component division
+ within the target. It should be possible to enumerate all of the tests that
+ exist for a specific system to determine the totality and applicability of
+ groups of tests; an executable is usually comprised of several systems, and
+ different systems may have different executables, thus TC6 and TC10 are
+ insufficient to fully capture this relationship.
+
+
+## Testing Ontology Elements
+
+The following identifies the primary elements in the TESTING ontology and the key
+properties that relate to the concerns described above. The actual definition in
+the TESTING.sadl file provides a more complete specification of TESTING elements.
+
+ * TEST : the lowest-level element, an ENTITY representing a single verification
+ of the smallest portion of functionality. [TC2.1]
+
+ * "verifies" property : the link to the ENTITY the test verifies [TC10]
+
+ * If a test is modified [TC7.2] it must be declared as a new TEST
+
+ * TEST_RESULT : The results of a TEST (via the "confirms" property), encoded as
+ TEST_STATUS, which indicates the disposition of running the TEST on the target
+ executable. [TC2.1]
+
+ * TEST_STEP : This identifies the ordered sequential relationship between a
+ specific TEST and any subsequent TEST_STEPs that it must preceed. [TC5]
+
+ * "thisStep" property : identifies the TEST performed during this step
+
+ * "nextStep" property : 0 or more values of TEST_STEP
+
+ * TEST_PROCEDURE : this COLLECTION identifies a group of independent tests [TC6]
+
+ * "targetSystem" property : identifies 1 or more SYSTEM.SYSTEM entities
+ this test is designed to test (if multiple, implies that this is testing
+ the interaction/communications between those systems. [TC11]
+
+ * TEST_RECORD : this ENTITY identifies the configuration under which a set of
+ tests was run
+
+ * "testRecordProcedure property : identifies the TEST_PROCEDURE this is a
+ record for
+
+ * "testRecordSteps" property : identifies the _initial_ TEST_STEP for a
+ sequence of tests that was run. These must be the starting TEST_STEP
+ within a sequence (i.e. these must be the direct members of the
+ testRecordProcedure). If any entry is not a member of the
+ testRecordProcedure, the TEST_RECORD is _incomplete_ and the results
+ should not be utilized.
+
+ The TEST_RECORD may identify a subset of the TEST_STEP entries for a
+ TEST_PROCEDURE as long as they are top-level TEST_STEPS entries. [TC8.4]
+
+ * "testRecordScenario" property : identifies the TEST_SCENARIO under which
+ this TEST_RECORD was generated.
+
+ * "testConfiguration" property : identifies an ENTITY that describes the
+ configuration information under which the test was run. [this is largely
+ TBD at this time]
+
+ * TEST_SCENARIO : this ENTITY defines the target that the TEST_EXECUTION was
+ run against and for which the the TEST_RECORD was generated. [TC3]
+
+ * "targetPackage" property : the FILE.FILE entity that was tested [TC8.2]
+ * "targetVersion" property : a STRING providing the VERSION of the
+ targetPackage that was tested. [TC8.2]
+ * "testPackage" property : the FILE.FILE entity that executed the tests [TC7.2] [TC9]
+ * "testVersion" property : a STRING providing the VERSION of the testPackage that was executed. [TC9]
+
+ * TEST_LOG : a COLLECTION of TEST_RECORD that were generated during a specific
+ TEST_EXECUTION. [TC8.3]
+
+ * TEST_EXECUTION : an ACTIVITY of running some or all of a TEST_PROCEDURE and
+ generating a TEST_LOG.
+
+ * "testProcedure" property : the TEST_PROCEDURE
+ * "testLog" property : the TEST_LOG generated by the TEST_EXECUTION
+
+ * TEST_DEVELOPMENT : an ACTIVITY which results in generating a FILE.FILE (via
+"wasGeneratedBy") that can be referenced by the TEST_SCENARIO.testPackage.
+
+ * TEST_ANNOTATION : an ENTITY that provides additional information about a
+ TEST_RESULT that might define mitigating circumstances or additional
+ context. [TC7.3]
+
+ * "annotatedResult" property : the TEST_RESULT being annotated
+ * "annotation" property : the ENTITY providing the annotation information
+
+Also see [this graphical representation](/RACK-Ontology/Graphs/TESTING_scoped.svg)
+of these primary TESTING elements and some of their surrounding elements.
+
+# Sample Scenarios
+
+## Scenario 1
+
+The software written during the Program is intended to satisfy a particular
+requirement "Req1" (among others). The software is built via the documented
+build process and the resulting artifact of the build is an executable,
+identified by Target name and version. This isn't strictly part of the testing
+ontology, this is some information from the software development ontology:
+
+ REQ1 is a REQUIREMENT has identifier "Req1".
+
+ SOURCE1 is a FILE.
+ MakeFile1 is a FILE.
+ MainDev is a CODE_DEVELOPMENT.
+ MainDev has goal SOURCE1.
+ MainDev has goal MakeFile1.
+
+ Bld1 is a COMPILE.
+ Bld1 has used MakeFile1 has compileInput SOURCE1 has goal TARGET1.
+ TARGET1 is a FILE.
+
+The software must be verified to meet
+Req1, so 5 requirements-based TESTs are developed (the TESTs 'wasGeneratedBy' a
+TEST_DEVELOPMENT), and the 'verifies' target of each is the "Req1" REQUIREMENT.
+
+The test development could be captured by another software development dataset:
+
+ TDEV1 is a TEST_DEVELOPMENT.
+ TDEV1 has goal TestSource1.
+ TestSource1 is a FILE.
+
+ TestBld1 is a COMPILE.
+ TestBld1 has compileInput TestSource1 has goal TestExe.
+ TestExe is a FILE.
+
+Describing the 5 tests within the TESTING ontology portion and--since we
+documented the `TEST_DEVELOPMENT` above--linking them back to their development
+portion (which is not always present):
+
+ TEST1 is a TEST has identifier "Test1".
+ TEST2 is a TEST has identifier "Test2".
+ TEST3 is a TEST has identifier "Test3".
+ TEST4 is a TEST has identifier "Test4".
+ TEST5 is a TEST has identifier "Test5".
+
+ TEST1 has wasGeneratedBy TDEV1 has verifies REQ1 has wasDerivedFrom TestSource1.
+ TEST2 has wasGeneratedBy TDEV1 has verifies REQ1 has wasDerivedFrom TestSource1.
+ TEST3 has wasGeneratedBy TDEV1 has verifies REQ1 has wasDerivedFrom TestSource1.
+ TEST4 has wasGeneratedBy TDEV1 has verifies REQ1 has wasDerivedFrom TestSource1.
+ TEST5 has wasGeneratedBy TDEV1 has verifies REQ1 has wasDerivedFrom TestSource1.
+
+Two of the TESTs ("Test1" and "Test2") are independent, and the remaining three
+are independent of the first two but it is known that they must be run in a
+specific order ("Test3" -> "Test4" -> "Test5"). This information is represented
+by a TEST_PROCEDURE "VerifyReq1" with three 'independentTest' links to three
+TEST_STEPs ("Step1", "Step2", "Step3"), where "Step1" 'thisStep' is "Test1",
+"Step2" 'thisStep' is "Test2", and "Step3" 'thisStep' is "Test3". There are two
+more TEST_STEPs ("Step3b" and "Step3c"), where "Step3" has 'nextStep' to "Step3b"
+(which has 'thisStep' to "Test4"), and "Step3b" has 'nextStep' to "Step3c" (which
+has 'thisStep' to "Test5"). Note that it is not always apparent which tests are
+dependent on other tests; the default approach is to simply assume all tests are
+independent until otherwise known, as is described in this scenario.
+
+ VR1 is a TEST_PROCEDURE has identifier "VerifyReq1".
+ Tstep1 is a TEST_STEP has identifier "Step1" has thisStep TEST1.
+ Tstep2 is a TEST_STEP has identifier "Step2" has thisStep TEST2.
+ Tstep3 is a TEST_STEP has identifier "Step3" has thisStep TEST3.
+ Tstep4 is a TEST_STEP has identifier "Step3b" has thisStep TEST4.
+ Tstep5 is a TEST_STEP has identifier "Step3c" has thisStep TEST5.
+
+ VR1 has independentTest Tstep1.
+ VR1 has independentTest Tstep2.
+ VR1 has independentTest Tstep3.
+ Tstep3 has nextStep Tstep4.
+ Tstep4 has nextStep Tstep5.
+
+After the Target software and the Tests have been developed, it is time for the
+actual testing to be performed (a TEST_EXECUTION activity). This TEST_EXECUTION
+identifies the 'testProcedure' of "VerifyReq1" (it may have additional
+'testProcedure' targets if it is running multiple procedures), and it has a
+'testLog' connection to a TEST_LOG to log records of the tests performed and the
+results. The TEST_LOG will have at least one 'content' connection to a
+TEST_RECORD that is associated with the "VerifyReq1" TEST_PROCEDURE via the
+'testRecordProcedure'. Note that it is possible that the testing might only run
+a subset of the TEST_PROCEDURE, so the TEST_RECORD has a 'testRecordSteps' to
+each of the independent tests actually run during that TEST_EXECUTION; these
+should be a subset of the 'content' links from the TEST_PROCEDURE to the
+corresponding TEST_STEPs. The TEST_RECORD also has a 'testRecordScenario' link
+to a TEST_SCENARIO that identifies both the Target software (FILE and string
+version) as well as the Testing software (FILE and string version). The
+TEST_RECORD may also have 'testConfiguration' links to ENTITYs that further
+describe the configuration (e.g. the hardware elements, the test parameters,
+etc.).
+
+ Trun1 is a TEST_EXECUTION has testProcedure VR1.
+ Tlog1 is a TEST_LOG.
+ Trec1 is a TEST_RECORD.
+ Scenario1 is a TEST_SCENARIO.
+
+ Trun1 has testLog Tlog1.
+ Tlog1 has content Trec1;
+
+ Trec1 has testRecordProcedure VR1.
+ Trec1 has testRecordSteps Tstep1.
+ Trec1 has testRecordSteps Tstep2.
+ Trec1 has testRecordSteps Tstep3.
+ Trec1 has testRecordScenario Scenario1.
+ Trec1 has testConfiguration Processor1.
+
+ Processor1 is a HWCOMPONENT has componentType ComputePlatform.
+
+ Scenario1 has targetPackage TARGET1 has targetVersion "v1".
+ Scenario1 has testPackage TestExe has testVersion "v1".
+
+Each individual TEST that is run during the TEST_EXECUTION should generate a
+TEST_RESULT with a 'result' of TEST_STATUS to indicate if the TEST successfully
+validated the 'verifies' Thing-Tested for the test. Each TEST_RESULT has a
+'wasGeneratedBy' to the TEST_EXECUTION, and a 'confirms' link to the TEST that it
+is the result of.
+
+ TRES1 is a TEST_RESULT has wasGeneratedBy Trun1 has confirms TEST1.
+ TRES2 is a TEST_RESULT has wasGeneratedBy Trun1 has confirms TEST2.
+ TRES3 is a TEST_RESULT has wasGeneratedBy Trun1 has confirms TEST3.
+ TRES4 is a TEST_RESULT has wasGeneratedBy Trun1 has confirms TEST4.
+ TRES5 is a TEST_RESULT has wasGeneratedBy Trun1 has confirms TEST5.
+
+In our sample scenario, we will suppose that the TEST_STATUS for all of our TESTs
+is 'Passed', with the exception of "Test2", which has a TEST_STATUS 'result' of
+'Failed'. However, Joe Test (an AGENT) subsequently performs a generic ACTIVITY
+where he evaluates the failure and determines that it is not properly indicative
+of the scenario defined by the "VerifyReq1" requirement (perhaps due to the
+'testConfiguration' information) and therefore he creates a formal "Memo"
+(TEST_ANNOTATION) that 'wasGeneratedBy' his ACTIVITY. That Memo describes his
+findings and documents his assessment that the 'Failed' TEST_STATUS should be
+ignored. That "Memo" has an 'annotatedResult' link to the TEST_EXECUTION's
+TEST_RESULT for "Test2".
+
+ TRES1 has result Passed.
+ TRES2 has result Failed.
+ TRES3 has result Passed.
+ TRES4 has result Passed.
+ TRES5 has result Passed.
+
+ JoeTest is a PERSON has title "Joe Test".
+ TestResultAnalysis is an ACTIVITY.
+ TestResultAnalysis has wasAssociatedWith JoeTest has goal Memo.
+
+ Memo is a TEST_ANNOTATION has wasGeneratedBy TestResultAnalysis.
+ Memo has annotatedResult TRES2.
+ Memo has annotatedValue IgnoredFailureOOB.
+
+
+## Scenario 2
+
+A software developer (AGENT "Alice") in the Program writes a SWCOMPONENT
+"bitflipper" with a 'componentType' of 'SourceFunction' as part of a
+CODE_DEVELOPMENT activity. "Alice"'s pair-programmer AGENT "Bob" performs a
+TEST_DEVELOPMENT activity to write 3 Unit TESTs that will directly link with
+"Alice"'s SWCOMPONENT to create a distinct test executable (FILE and Version
+string) FILE with 'filename' "BitFlipperTesting" via a COMPILE activity. The
+COMPILE activity has a 'compileInput' link to the FILE containing the
+"bitflipper" SWCOMPONENT. These three tests ("Flip", "Flop", "Flap") are
+independent and therefore each is the 'thisStep' of "FlipStep", "FlopStep", and
+"FlapStep" TEST_STEP's, respectively, all three of which are 'content' linked to
+by the "FLIPTest" TEST_PROCEDURE. All three of "Flip", "Flop", and "Flap" TESTs
+have a 'verifies' link to the "bitflipper" SWCOMPONENT.
+
+ ALICE is a PERSON has title "Alice".
+ InitialDev is a CODE_DEVELOPMENT wasAssociatedWith ALICE.
+ InitialDev has goal BitFlipperSource has goal BitFlipper.
+ BitFlipperSource is a FILE.
+ BitFlipper is a SWCOMPONENT has title "bitflipper".
+ BitFlipper has componentType SourceFunction.
+ BitFlipper has partOf BitFlipperSource.
+
+ BOB is a Person has title "Bob".
+ TestDev is a TEST_DEVELOPMENT wasAssociatedWith BOB.
+ Flip is a TEST has wasGeneratedBy TestDev.
+ Flap is a TEST has wasGeneratedBy TestDev.
+ Flop is a TEST has wasGeneratedBy TestDev.
+ TestDev has goal SrcTestFile.
+ SrcTestFile is a FILE.
+
+ TestBld1 is a COMPILE wasAssociatedWith BOB.
+ TestBld1 has compileInput SrcTestFile has compileInput BitFlipperSource.
+ TestBld1 has goal TestExe.
+ TestExe is a FILE has filename "BitFlipperTesting".
+
+ Flip has verifies BitFlipper.
+ Flap has verifies BitFlipper.
+ Flop has verifies BitFlipper.
+
+ FlipStep is a TEST_STEP has thisStep Flip.
+ FlapStep is a TEST_STEP has thisStep Flap.
+ FlopStep is a TEST_STEP has thisStep Flop.
+
+ FLIPTest is a TEST_PROCEDURE.
+ FLIPTest has independentTest FlipStep.
+ FLIPTest has independentTest FlapStep.
+ FLIPTest has independentTest FlopStep.
+
+"Bob" then performs a TEST_EXECUTION activity for the 'testProcedure' "FLIPTest"
+which generates a 'testLog' link to a TEST_LOG with 'content' of a TEST_RECORD.
+The TEST_RECORD has a 'testRecordProcedure' to "FLIPTest", a 'testRecordScenario'
+to a TEST_SCENARIO that has a 'testPackage' of "BitFlipperTesting" and
+'testVersion' of "1.0" but no 'targetPackage' linkage. At the completion of the
+TEST_EXECUTION, there are three TEST_RESULTs that 'wasGeneratedBy' the
+TEST_EXECUTION, where each confirms "Flip", "Flop" and "Flap" TESTs respectively.
+Unfortunately, "Flip" and "Flap" have a TEST_RESULT 'result' TEST_STATUS of
+'Passed', but "Flop" is 'Failed'.
+
+ Run1 is a TEST_EXECUTION has testProcedure FLIPTest wasAssociatedWith BOB.
+ Log1 is a TEST_LOG.
+ Record1 is a TEST_RECORD.
+ Scenario1 is a TEST_SCENARIO.
+
+ Run1 has testLog Log1.
+ Log1 has content Record1.
+ Record1 has testRecordProcedure FLIPTest.
+ Record1 has testRecordSteps FlipStep.
+ Record1 has testRecordSteps FlapStep.
+ Record1 has testRecordSteps FlopStep.
+ Record1 has testRecordScenario Scenario1.
+
+ Scenario1 has testPackage TestExe has testVersion "1.0".
+
+ Flipped1 is a TEST_RESULT has wasGeneratedBy Run1 has confirms Flip.
+ Flapped1 is a TEST_RESULT has wasGeneratedBy Run1 has confirms Flap.
+ Flopped1 is a TEST_RESULT has wasGeneratedBy Run1 has confirms Flop.
+
+ Flipped1 has result Passed.
+ Flapped1 has result Passed.
+ Flopped1 has result Failed.
+
+
+"Alice" looks at the failed "Flop" test and realizes she needs to make a small
+change to the "bitflipper", which she does as a new CODE_DEVELOPMENT. "Bob" then
+performs another COMPILE activity to get a new version of "BitFlipperTesting".
+He then performs another TEST_EXECUTION, which has all the aforementioned links,
+except this time he only runs the previously-failed Flop test, which now has a
+new TEST_RESULT with a 'result' TEST_STATUS of 'Passed'. The TEST_RECORD
+'testRecordScenario' linked TEST_SCENARIO for this second run still has a
+'testPackage' of "BitFlipper" but the 'testVersion' is now "1.1", and the
+corresponding COMPILE activity has a 'compileInput' to the new FILE containing
+"Alice"'s updated "bitflipper" that 'wasGeneratedBy' her second CODE_DEVELOPMENT
+activity.
+
+ FixBitFlipper is a CODE_DEVELOPMENT wasAssociatedWith ALICE.
+ FixBitFlipper has goal BitFlipperSource2 has goal BitFlipper.
+ BitFlipperSource2 is a FILE.
+ BitFlipper has partOf BitFlipperSource2.
+
+ TestBld2 is a COMPILE wasAssociatedWith BOB.
+ TestBld2 has compileInput SrcTestFile has comipleInput BitFlipperSource2.
+ TestBld2 has goal TestExe2.
+ TestExe2 is a FILE has filename "BitFlipperTesting".
+
+ Run2 is a TEST_EXECUTION has testProcedure FLIPTest wasAssociatedWith BOB.
+ Log2 is a TEST_LOG.
+ Record2 is a TEST_RECORD.
+ Scenario2 is a TEST_SCENARIO.
+
+ Run2 has testLog Log2.
+ Log2 has content Record2.
+ Record2 has testRecordProcedure FLIPTest.
+ Record2 has testRecordSteps FlopStep.
+ Record2 has testRecordScenario Scenario2.
+
+ Scenario2 has testPackage TestExe2 has testVersion "1.1".
+
+ Flopped2 is a TEST_RESULT has wasGeneratedBy Run2 has confirms Flop.
+ Flopped2 has result Passed.
+
+Another note to make here is that it's not always the case that this type of
+incremental development process is captured in the data provided to RACK. The
+minimum scenario is that there is a `TEST_RECORD` that fully matches the
+`TEST_SCENARIO` and contains a `TEST_RESULT` that confirms every `TEST`; the
+additional information captured in the above multi-stage scenario is enhanced
+information that is not always available.
diff --git a/RACK-Ontology/OwlModels/import.yaml b/RACK-Ontology/OwlModels/model.yaml
similarity index 100%
rename from RACK-Ontology/OwlModels/import.yaml
rename to RACK-Ontology/OwlModels/model.yaml
diff --git a/RACK-Ontology/OwlModels/ont-policy.rdf b/RACK-Ontology/OwlModels/ont-policy.rdf
index 717f884d..9ef1f17e 100644
--- a/RACK-Ontology/OwlModels/ont-policy.rdf
+++ b/RACK-Ontology/OwlModels/ont-policy.rdf
@@ -2,253 +2,277 @@
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:j.0="http://jena.hpl.hp.com/schemas/2003/03/ont-manager#">
- platform:/resource/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxD.sadl
-
- SADL
+ platform:/resource/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D.sadl
+ m881D
- MIL-STD-881D-AppxD
-
-
-
- platform:/resource/RACK-Ontology/ontology/SYSTEM.sadl
- SADL
-
- sys
-
+
+
- platform:/resource/RACK-Ontology/ontology/SECURITY.sadl
- Sec
- SADL
+
+ genpropinfo
-
-
+ SADL
+
+ platform:/resource/RACK-Ontology/ontology/GeneratePropInfoCSV.sadl
- sadllistmodel
- SADL
+ platform:/resource/RACK-Ontology/ontology/FILE.sadl
+ file
-
-
+ SADL
+
+
- platform:/resource/RACK-Ontology/ontology/MITRE-CWE/MITRE-CWE.sadl
-
+ platform:/resource/RACK-Ontology/ontology/HAZARD.sadl
+ HSADL
- CWE
-
+
+
+ platform:/resource/RACK-Ontology/ontology/HARDWARE.sadl
+
- SRL_Metrics
+ SADL
+ hw
+
- platform:/resource/RACK-Ontology/ontology/DO-330/DO-330.sadl
-
- SADL
+
+ Ag
- DO-330
-
+ SADL
+
+ platform:/resource/RACK-Ontology/ontology/AGENTS.sadl
- platform:/resource/RACK-Ontology/ontology/PROV-S.sadl
-
- SADL
+ platform:/resource/RACK-Ontology/ontology/SECURITY.sadl
+
- provs
-
+ SADL
+ Sec
+
- platform:/resource/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxC.sadl
-
+ platform:/resource/RACK-Ontology/ontology/CLAIM.sadl
+ claimSADL
- MIL-STD-881D-AppxC
-
+
+
- platform:/resource/RACK-Ontology/ontology/ANALYSIS.sadl
-
- SADL
+ platform:/resource/RACK-Ontology/ontology/SOFTWARE.sadl
+ sw
- An
-
+ SADL
+
+
- platform:/resource/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxA.sadl
-
- SADL
+ SRL_Metrics
- MIL-STD-881D-AppxA
-
- platform:/resource/RACK-Ontology/ontology/DO-178C/DO-178C.sadl
-
- SADL
+
+ MIL-STD-881D-AppxA
- DO-178C
-
+ SADL
+
+ platform:/resource/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxA.sadl
- platform:/resource/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D.sadl
-
- SADL
+
+ DO-330
- m881D
-
+ SADL
+
+ platform:/resource/RACK-Ontology/ontology/DO-330/DO-330.sadl
- platform:/resource/RACK-Ontology/ontology/ARP-4754A/ARP-4754A.sadl
-
- SADL
+
+
- ARP-4754A
-
+ SADL
+ sadllistmodelplatform:/resource/RACK-Ontology/ontology/DOCUMENT.sadl
-
- SADL
- D
+
+ SADL
+
- platform:/resource/RACK-Ontology/ontology/FILE.sadl
-
- SADL
+ platform:/resource/RACK-Ontology/ontology/PROCESS.sadl
+ Pr
- file
-
+ SADL
+
+
- platform:/resource/RACK-Ontology/ontology/BASELINE.sadl
-
+
+ RvSADL
- baseline
-
+
+ platform:/resource/RACK-Ontology/ontology/REVIEW.sadl
- platform:/resource/RACK-Ontology/ontology/HAZARD.sadl
-
+
+ baselineSADL
- H
-
+
+ platform:/resource/RACK-Ontology/ontology/BASELINE.sadl
- platform:/resource/RACK-Ontology/ontology/PROCESS.sadl
-
- SADL
+ platform:/resource/RACK-Ontology/ontology/TESTING.sadl
+ tst
- Pr
-
+ SADL
+
+
- platform:/resource/RACK-Ontology/ontology/SOFTWARE.sadl
-
+
+ CWESADL
- sw
-
+
+ platform:/resource/RACK-Ontology/ontology/MITRE-CWE/MITRE-CWE.sadl
- platform:/resource/RACK-Ontology/ontology/HARDWARE.sadl
- hw
- SADL
+
+ MIL-STD-881D-AppxB
-
-
+ SADL
+
+ platform:/resource/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxB.sadl
- platform:/resource/RACK-Ontology/ontology/REVIEW.sadl
-
- SADL
+ platform:/resource/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxC.sadl
+ MIL-STD-881D-AppxC
- Rv
-
+ SADL
+
+
- platform:/resource/RACK-Ontology/ontology/CONFIDENCE.sadl
-
- SADL
+
+ DO-178C
- CONFIDENCE
-
+ SADL
+
+ platform:/resource/RACK-Ontology/ontology/DO-178C/DO-178C.sadl
- platform:/resource/RACK-Ontology/ontology/REQUIREMENTS.sadl
-
- SADL
+
+ CONFIDENCE
- Rq
-
+ SADL
+
+ platform:/resource/RACK-Ontology/ontology/CONFIDENCE.sadl
- platform:/resource/RACK-Ontology/ontology/MODEL.sadl
- M
- SADL
+
+
-
-
+ SADL
+ sadlimplicitmodel
+ platform:/resource/RACK-Ontology/ImplicitModel/SadlImplicitModel.sadl
- platform:/resource/RACK-Ontology/ontology/TESTING.sadl
-
+ platform:/resource/RACK-Ontology/ontology/RESOLUTIONS.sadl
+ RsSADL
- tst
-
+
+
- platform:/resource/RACK-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
- builtinfunctions
+
+
+ SADL
+ builtinfunctions
+ platform:/resource/RACK-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
+
+
+ platform:/resource/RACK-Ontology/ontology/ANALYSIS.sadl
+ An
-
-
+ SADL
+
+
- platform:/resource/RACK-Ontology/ontology/AGENTS.sadl
-
+ platform:/resource/RACK-Ontology/ontology/EntityResolution.sadl
+ EntityResolutionSADL
- Ag
-
+
+
- sadlbasemodel
- SADL
+ platform:/resource/RACK-Ontology/ontology/SYSTEM.sadl
+ sys
-
-
+ SADL
+
+
- platform:/resource/RACK-Ontology/ontology/GeneratePropInfoCSV.sadl
-
+ platform:/resource/RACK-Ontology/ontology/PROV-S.sadl
+ provs
+ SADL
+
+
+
+
+
+ Rq
- genpropinfo
-
+ SADL
+
+ platform:/resource/RACK-Ontology/ontology/REQUIREMENTS.sadl
- platform:/resource/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxB.sadl
-
+
+ ARP-4754A
+ SADL
+
+ platform:/resource/RACK-Ontology/ontology/ARP-4754A/ARP-4754A.sadl
+
+
+
+
- MIL-STD-881D-AppxB
-
+ SADL
+ sadlbasemodel
- platform:/resource/RACK-Ontology/ImplicitModel/SadlImplicitModel.sadl
- sadlimplicitmodel
+
+
+ SADL
+ M
+ platform:/resource/RACK-Ontology/ontology/MODEL.sadl
+
+
+ platform:/resource/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxD.sadl
+ MIL-STD-881D-AppxD
-
-
+ SADL
+
+
diff --git a/RACK-Ontology/manifest.yaml b/RACK-Ontology/manifest.yaml
new file mode 100644
index 00000000..3d7ee987
--- /dev/null
+++ b/RACK-Ontology/manifest.yaml
@@ -0,0 +1,7 @@
+name: RACK-Ontology
+footprint:
+ model-graphs:
+ - http://rack001/model
+steps:
+- model: OwlModels/model.yaml
+- nodegroups: nodegroups
diff --git a/nodegroups/queries/GetDataInsertedByFromGuid.json b/RACK-Ontology/nodegroups/GetDataInsertedByFromGuid.json
similarity index 100%
rename from nodegroups/queries/GetDataInsertedByFromGuid.json
rename to RACK-Ontology/nodegroups/GetDataInsertedByFromGuid.json
diff --git a/nodegroups/queries/README.md b/RACK-Ontology/nodegroups/README.md
similarity index 100%
rename from nodegroups/queries/README.md
rename to RACK-Ontology/nodegroups/README.md
diff --git a/nodegroups/queries/query Compilation Inputs.json b/RACK-Ontology/nodegroups/query Compilation Inputs.json
similarity index 100%
rename from nodegroups/queries/query Compilation Inputs.json
rename to RACK-Ontology/nodegroups/query Compilation Inputs.json
diff --git a/nodegroups/queries/query Files of a Given Format.json b/RACK-Ontology/nodegroups/query Files of a Given Format.json
similarity index 100%
rename from nodegroups/queries/query Files of a Given Format.json
rename to RACK-Ontology/nodegroups/query Files of a Given Format.json
diff --git a/nodegroups/queries/query Hazard structure.json b/RACK-Ontology/nodegroups/query Hazard structure.json
similarity index 100%
rename from nodegroups/queries/query Hazard structure.json
rename to RACK-Ontology/nodegroups/query Hazard structure.json
diff --git a/nodegroups/queries/query Interface structure.json b/RACK-Ontology/nodegroups/query Interface structure.json
similarity index 100%
rename from nodegroups/queries/query Interface structure.json
rename to RACK-Ontology/nodegroups/query Interface structure.json
diff --git a/nodegroups/queries/query Models for Thing.json b/RACK-Ontology/nodegroups/query Models for Thing.json
similarity index 100%
rename from nodegroups/queries/query Models for Thing.json
rename to RACK-Ontology/nodegroups/query Models for Thing.json
diff --git a/nodegroups/queries/query Requirement Review same Agent.json b/RACK-Ontology/nodegroups/query Requirement Review same Agent.json
similarity index 100%
rename from nodegroups/queries/query Requirement Review same Agent.json
rename to RACK-Ontology/nodegroups/query Requirement Review same Agent.json
diff --git a/nodegroups/queries/query Requirements decomposition.json b/RACK-Ontology/nodegroups/query Requirements decomposition.json
similarity index 100%
rename from nodegroups/queries/query Requirements decomposition.json
rename to RACK-Ontology/nodegroups/query Requirements decomposition.json
diff --git a/nodegroups/queries/query Requirements with Tests.json b/RACK-Ontology/nodegroups/query Requirements with Tests.json
similarity index 100%
rename from nodegroups/queries/query Requirements with Tests.json
rename to RACK-Ontology/nodegroups/query Requirements with Tests.json
diff --git a/nodegroups/queries/query Requirements with failed test result.json b/RACK-Ontology/nodegroups/query Requirements with failed test result.json
similarity index 100%
rename from nodegroups/queries/query Requirements with failed test result.json
rename to RACK-Ontology/nodegroups/query Requirements with failed test result.json
diff --git a/nodegroups/queries/query Requirements without Tests.json b/RACK-Ontology/nodegroups/query Requirements without Tests.json
similarity index 100%
rename from nodegroups/queries/query Requirements without Tests.json
rename to RACK-Ontology/nodegroups/query Requirements without Tests.json
diff --git a/nodegroups/queries/query Requirements without passed test v2.json b/RACK-Ontology/nodegroups/query Requirements without passed test v2.json
similarity index 100%
rename from nodegroups/queries/query Requirements without passed test v2.json
rename to RACK-Ontology/nodegroups/query Requirements without passed test v2.json
diff --git a/nodegroups/queries/query Requirements without passed test.json b/RACK-Ontology/nodegroups/query Requirements without passed test.json
similarity index 100%
rename from nodegroups/queries/query Requirements without passed test.json
rename to RACK-Ontology/nodegroups/query Requirements without passed test.json
diff --git a/nodegroups/queries/query System Structure.json b/RACK-Ontology/nodegroups/query System Structure.json
similarity index 100%
rename from nodegroups/queries/query System Structure.json
rename to RACK-Ontology/nodegroups/query System Structure.json
diff --git a/nodegroups/queries/query Terms consumedBy Requirement.json b/RACK-Ontology/nodegroups/query Terms consumedBy Requirement.json
similarity index 100%
rename from nodegroups/queries/query Terms consumedBy Requirement.json
rename to RACK-Ontology/nodegroups/query Terms consumedBy Requirement.json
diff --git a/nodegroups/queries/query Testcase without requirement.json b/RACK-Ontology/nodegroups/query Testcase without requirement.json
similarity index 100%
rename from nodegroups/queries/query Testcase without requirement.json
rename to RACK-Ontology/nodegroups/query Testcase without requirement.json
diff --git a/nodegroups/queries/query Trace Hazards to Tests.json b/RACK-Ontology/nodegroups/query Trace Hazards to Tests.json
similarity index 100%
rename from nodegroups/queries/query Trace Hazards to Tests.json
rename to RACK-Ontology/nodegroups/query Trace Hazards to Tests.json
diff --git a/nodegroups/queries/query Trace Requirements to Tests.json b/RACK-Ontology/nodegroups/query Trace Requirements to Tests.json
similarity index 100%
rename from nodegroups/queries/query Trace Requirements to Tests.json
rename to RACK-Ontology/nodegroups/query Trace Requirements to Tests.json
diff --git a/nodegroups/queries/query dataVer INTERFACE without destination SYSTEM.json b/RACK-Ontology/nodegroups/query dataVer INTERFACE without destination SYSTEM.json
similarity index 100%
rename from nodegroups/queries/query dataVer INTERFACE without destination SYSTEM.json
rename to RACK-Ontology/nodegroups/query dataVer INTERFACE without destination SYSTEM.json
diff --git a/nodegroups/queries/query dataVer INTERFACE without source SYSTEM.json b/RACK-Ontology/nodegroups/query dataVer INTERFACE without source SYSTEM.json
similarity index 100%
rename from nodegroups/queries/query dataVer INTERFACE without source SYSTEM.json
rename to RACK-Ontology/nodegroups/query dataVer INTERFACE without source SYSTEM.json
diff --git a/nodegroups/queries/query dataVer SBVT_Result without confirms_SBVT_Test.json b/RACK-Ontology/nodegroups/query dataVer SBVT_Result without confirms_SBVT_Test.json
similarity index 100%
rename from nodegroups/queries/query dataVer SBVT_Result without confirms_SBVT_Test.json
rename to RACK-Ontology/nodegroups/query dataVer SBVT_Result without confirms_SBVT_Test.json
diff --git a/nodegroups/queries/query dataVer SBVT_Test without REQUIREMENT.json b/RACK-Ontology/nodegroups/query dataVer SBVT_Test without REQUIREMENT.json
similarity index 100%
rename from nodegroups/queries/query dataVer SBVT_Test without REQUIREMENT.json
rename to RACK-Ontology/nodegroups/query dataVer SBVT_Test without REQUIREMENT.json
diff --git a/nodegroups/queries/query dataVer SRS_Req dataInsertedBy other than SRS Data Ingestion.json b/RACK-Ontology/nodegroups/query dataVer SRS_Req dataInsertedBy other than SRS Data Ingestion.json
similarity index 100%
rename from nodegroups/queries/query dataVer SRS_Req dataInsertedBy other than SRS Data Ingestion.json
rename to RACK-Ontology/nodegroups/query dataVer SRS_Req dataInsertedBy other than SRS Data Ingestion.json
diff --git a/nodegroups/queries/query dataVer SRS_Req without CSID or PIDS.json b/RACK-Ontology/nodegroups/query dataVer SRS_Req without CSID or PIDS.json
similarity index 100%
rename from nodegroups/queries/query dataVer SRS_Req without CSID or PIDS.json
rename to RACK-Ontology/nodegroups/query dataVer SRS_Req without CSID or PIDS.json
diff --git a/nodegroups/queries/query dataVer SRS_Req without description.json b/RACK-Ontology/nodegroups/query dataVer SRS_Req without description.json
similarity index 100%
rename from nodegroups/queries/query dataVer SRS_Req without description.json
rename to RACK-Ontology/nodegroups/query dataVer SRS_Req without description.json
diff --git a/nodegroups/queries/query dataVer SRS_Req without verifies SBVT_Test.json b/RACK-Ontology/nodegroups/query dataVer SRS_Req without verifies SBVT_Test.json
similarity index 100%
rename from nodegroups/queries/query dataVer SRS_Req without verifies SBVT_Test.json
rename to RACK-Ontology/nodegroups/query dataVer SRS_Req without verifies SBVT_Test.json
diff --git a/nodegroups/queries/query dataVer SYSTEM without partOf SYSTEM.json b/RACK-Ontology/nodegroups/query dataVer SYSTEM without partOf SYSTEM.json
similarity index 100%
rename from nodegroups/queries/query dataVer SYSTEM without partOf SYSTEM.json
rename to RACK-Ontology/nodegroups/query dataVer SYSTEM without partOf SYSTEM.json
diff --git a/nodegroups/queries/query dataVer SubDD_Req without satisfies SRS_Req.json b/RACK-Ontology/nodegroups/query dataVer SubDD_Req without satisfies SRS_Req.json
similarity index 100%
rename from nodegroups/queries/query dataVer SubDD_Req without satisfies SRS_Req.json
rename to RACK-Ontology/nodegroups/query dataVer SubDD_Req without satisfies SRS_Req.json
diff --git a/nodegroups/queries/query dataVer only REQUIREMENT subclasses.json b/RACK-Ontology/nodegroups/query dataVer only REQUIREMENT subclasses.json
similarity index 100%
rename from nodegroups/queries/query dataVer only REQUIREMENT subclasses.json
rename to RACK-Ontology/nodegroups/query dataVer only REQUIREMENT subclasses.json
diff --git a/nodegroups/queries/query dataVer unlinked SWCOMPONENT.json b/RACK-Ontology/nodegroups/query dataVer unlinked SWCOMPONENT.json
similarity index 100%
rename from nodegroups/queries/query dataVer unlinked SWCOMPONENT.json
rename to RACK-Ontology/nodegroups/query dataVer unlinked SWCOMPONENT.json
diff --git a/RACK-Ontology/nodegroups/query_Claim_Property_PropertyResult_Activity.json b/RACK-Ontology/nodegroups/query_Claim_Property_PropertyResult_Activity.json
new file mode 100644
index 00000000..cfaf1fc3
--- /dev/null
+++ b/RACK-Ontology/nodegroups/query_Claim_Property_PropertyResult_Activity.json
@@ -0,0 +1,244 @@
+{
+ "version": 3,
+ "sparqlConn": {
+ "name": "RACK local fuseki Apache Phase 2",
+ "domain": "",
+ "enableOwlImports": false,
+ "model": [
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/model"
+ }
+ ],
+ "data": [
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/data"
+ },
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/mitre-cwe"
+ },
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/nist-800-53"
+ }
+ ]
+ },
+ "sNodeGroup": {
+ "version": 19,
+ "limit": 0,
+ "offset": 0,
+ "sNodeList": [
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?declares_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [],
+ "fullURIName": "http://arcos.rack/PROCESS#PROPERTY",
+ "SparqlID": "?PROPERTY",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?CLAIM_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": true,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [
+ {
+ "SnodeSparqlIDs": [
+ "?PROPERTY"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROCESS#PROPERTY"
+ ],
+ "ConnectBy": "declares",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/CLAIM#declares"
+ }
+ ],
+ "fullURIName": "http://arcos.rack/CLAIM#CLAIM",
+ "SparqlID": "?CLAIM",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?wasGeneratedBy_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [],
+ "fullURIName": "http://arcos.rack/PROV-S#ACTIVITY",
+ "SparqlID": "?ACTIVITY",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [
+ {
+ "SnodeSparqlIDs": [
+ "?PROPERTY"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROCESS#PROPERTY"
+ ],
+ "ConnectBy": "demonstrates",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/CLAIM#demonstrates"
+ },
+ {
+ "SnodeSparqlIDs": [
+ "?ACTIVITY"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROV-S#ACTIVITY"
+ ],
+ "ConnectBy": "wasGeneratedBy",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/PROV-S#wasGeneratedBy"
+ }
+ ],
+ "fullURIName": "http://arcos.rack/CLAIM#PROPERTY_RESULT",
+ "SparqlID": "?PROPERTY_RESULT",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ }
+ ],
+ "orderBy": [],
+ "groupBy": [],
+ "unionHash": {},
+ "columnOrder": []
+ },
+ "importSpec": {
+ "version": "1",
+ "baseURI": "",
+ "columns": [],
+ "dataValidator": [],
+ "texts": [],
+ "transforms": [],
+ "nodes": [
+ {
+ "sparqlID": "?PROPERTY_RESULT",
+ "type": "http://arcos.rack/CLAIM#PROPERTY_RESULT",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?ACTIVITY",
+ "type": "http://arcos.rack/PROV-S#ACTIVITY",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?CLAIM",
+ "type": "http://arcos.rack/CLAIM#CLAIM",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?PROPERTY",
+ "type": "http://arcos.rack/PROCESS#PROPERTY",
+ "mapping": [],
+ "props": []
+ }
+ ]
+ },
+ "plotSpecs": []
+}
\ No newline at end of file
diff --git a/RACK-Ontology/nodegroups/query_Claim_Property_PropertyResult_Review.json b/RACK-Ontology/nodegroups/query_Claim_Property_PropertyResult_Review.json
new file mode 100644
index 00000000..005a188f
--- /dev/null
+++ b/RACK-Ontology/nodegroups/query_Claim_Property_PropertyResult_Review.json
@@ -0,0 +1,342 @@
+{
+ "version": 3,
+ "sparqlConn": {
+ "name": "RACK local fuseki Apache Phase 2",
+ "domain": "",
+ "enableOwlImports": false,
+ "model": [
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/model"
+ }
+ ],
+ "data": [
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/data"
+ },
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/mitre-cwe"
+ },
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/nist-800-53"
+ }
+ ]
+ },
+ "sNodeGroup": {
+ "version": 19,
+ "limit": 0,
+ "offset": 0,
+ "sNodeList": [
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?REVIEW_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [],
+ "fullURIName": "http://arcos.rack/REVIEW#REVIEW",
+ "SparqlID": "?REVIEW",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?REVIEW_STATE_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [],
+ "fullURIName": "http://arcos.rack/REVIEW#REVIEW_STATE",
+ "SparqlID": "?REVIEW_STATE",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [],
+ "nodeList": [
+ {
+ "SnodeSparqlIDs": [
+ "?REVIEW_STATE"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/REVIEW#REVIEW_STATE"
+ ],
+ "ConnectBy": "reviewResult",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/REVIEW#reviewResult"
+ },
+ {
+ "SnodeSparqlIDs": [
+ "?REVIEW"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/REVIEW#REVIEW"
+ ],
+ "ConnectBy": "wasGeneratedBy",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/PROV-S#wasGeneratedBy"
+ }
+ ],
+ "fullURIName": "http://arcos.rack/REVIEW#REVIEW_LOG",
+ "SparqlID": "?REVIEW_LOG",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?declares_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [],
+ "fullURIName": "http://arcos.rack/PROCESS#PROPERTY",
+ "SparqlID": "?PROPERTY",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?identifier",
+ "isReturned": false,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false,
+ "binding": "?PROPERTY_RESULT_identifier",
+ "isBindingReturned": true
+ }
+ ],
+ "nodeList": [
+ {
+ "SnodeSparqlIDs": [
+ "?PROPERTY"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROCESS#PROPERTY"
+ ],
+ "ConnectBy": "demonstrates",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/CLAIM#demonstrates"
+ },
+ {
+ "SnodeSparqlIDs": [
+ "?REVIEW"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROV-S#ACTIVITY"
+ ],
+ "ConnectBy": "wasGeneratedBy",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/PROV-S#wasGeneratedBy"
+ }
+ ],
+ "fullURIName": "http://arcos.rack/CLAIM#PROPERTY_RESULT",
+ "SparqlID": "?PROPERTY_RESULT",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?CLAIM_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": true,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [
+ {
+ "SnodeSparqlIDs": [
+ "?PROPERTY"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROCESS#PROPERTY"
+ ],
+ "ConnectBy": "declares",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/CLAIM#declares"
+ }
+ ],
+ "fullURIName": "http://arcos.rack/CLAIM#CLAIM",
+ "SparqlID": "?CLAIM",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ }
+ ],
+ "orderBy": [],
+ "groupBy": [],
+ "unionHash": {},
+ "columnOrder": [
+ "?CLAIM_identifier",
+ "?declares_identifier",
+ "?PROPERTY_RESULT_identifier",
+ "?REVIEW_identifier",
+ "?REVIEW_STATE_identifier"
+ ]
+ },
+ "importSpec": {
+ "version": "1",
+ "baseURI": "",
+ "columns": [],
+ "dataValidator": [],
+ "texts": [],
+ "transforms": [],
+ "nodes": [
+ {
+ "sparqlID": "?CLAIM",
+ "type": "http://arcos.rack/CLAIM#CLAIM",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?PROPERTY_RESULT",
+ "type": "http://arcos.rack/CLAIM#PROPERTY_RESULT",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?PROPERTY",
+ "type": "http://arcos.rack/PROCESS#PROPERTY",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?REVIEW_LOG",
+ "type": "http://arcos.rack/REVIEW#REVIEW_LOG",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?REVIEW_STATE",
+ "type": "http://arcos.rack/REVIEW#REVIEW_STATE",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?REVIEW",
+ "type": "http://arcos.rack/REVIEW#REVIEW",
+ "mapping": [],
+ "props": []
+ }
+ ]
+ },
+ "plotSpecs": []
+}
\ No newline at end of file
diff --git a/RACK-Ontology/nodegroups/query_Claim_declares_addresses.json b/RACK-Ontology/nodegroups/query_Claim_declares_addresses.json
new file mode 100644
index 00000000..53f94c8f
--- /dev/null
+++ b/RACK-Ontology/nodegroups/query_Claim_declares_addresses.json
@@ -0,0 +1,372 @@
+{
+ "version": 3,
+ "sparqlConn": {
+ "name": "RACK local fuseki Apache Phase 2",
+ "domain": "",
+ "enableOwlImports": false,
+ "model": [
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/model"
+ }
+ ],
+ "data": [
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/data"
+ },
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/mitre-cwe"
+ },
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/nist-800-53"
+ }
+ ]
+ },
+ "sNodeGroup": {
+ "version": 19,
+ "limit": 0,
+ "offset": 0,
+ "sNodeList": [
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?scopeOf_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [],
+ "fullURIName": "http://arcos.rack/SECURITY#CONTROL",
+ "SparqlID": "?CONTROL",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?outcome_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [],
+ "fullURIName": "http://arcos.rack/CLAIM#TEST_EXECUTION_OUTCOME",
+ "SparqlID": "?TEST_EXECUTION_OUTCOME",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?declares_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [
+ {
+ "SnodeSparqlIDs": [
+ "?CONTROL"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROV-S#ENTITY"
+ ],
+ "ConnectBy": "scopeOf",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/PROCESS#scopeOf"
+ }
+ ],
+ "fullURIName": "http://arcos.rack/PROCESS#PROPERTY",
+ "SparqlID": "?PROPERTY",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [],
+ "nodeList": [
+ {
+ "SnodeSparqlIDs": [
+ "?PROPERTY"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROCESS#PROPERTY"
+ ],
+ "ConnectBy": "demonstrates",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/CLAIM#demonstrates"
+ },
+ {
+ "SnodeSparqlIDs": [
+ "?TEST_EXECUTION_OUTCOME"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/CLAIM#TEST_EXECUTION_OUTCOME"
+ ],
+ "ConnectBy": "testExecutionOutcome",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/CLAIM#testExecutionOutcome"
+ }
+ ],
+ "fullURIName": "http://arcos.rack/CLAIM#TEST_EXECUTION_PROPERTY_RESULT",
+ "SparqlID": "?TEST_EXECUTION_PROPERTY_RESULT",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?addresses_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [],
+ "fullURIName": "http://arcos.rack/PROV-S#ENTITY",
+ "SparqlID": "?ENTITY",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [],
+ "nodeList": [
+ {
+ "SnodeSparqlIDs": [
+ "?ENTITY"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROV-S#ENTITY"
+ ],
+ "ConnectBy": "content",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/PROV-S#content"
+ }
+ ],
+ "fullURIName": "http://arcos.rack/PROV-S#COLLECTION",
+ "SparqlID": "?COLLECTION",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?CLAIM_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [
+ {
+ "SnodeSparqlIDs": [
+ "?COLLECTION"
+ ],
+ "OptionalMinus": [
+ 1
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROV-S#ENTITY"
+ ],
+ "ConnectBy": "addresses",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/CLAIM#addresses"
+ },
+ {
+ "SnodeSparqlIDs": [
+ "?PROPERTY"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROCESS#PROPERTY"
+ ],
+ "ConnectBy": "declares",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/CLAIM#declares"
+ }
+ ],
+ "fullURIName": "http://arcos.rack/CLAIM#CLAIM",
+ "SparqlID": "?CLAIM",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ }
+ ],
+ "orderBy": [],
+ "groupBy": [],
+ "unionHash": {},
+ "columnOrder": []
+ },
+ "importSpec": {
+ "version": "1",
+ "baseURI": "",
+ "columns": [],
+ "dataValidator": [],
+ "texts": [],
+ "transforms": [],
+ "nodes": [
+ {
+ "sparqlID": "?CLAIM",
+ "type": "http://arcos.rack/CLAIM#CLAIM",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?COLLECTION",
+ "type": "http://arcos.rack/PROV-S#COLLECTION",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?ENTITY",
+ "type": "http://arcos.rack/PROV-S#ENTITY",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?TEST_EXECUTION_PROPERTY_RESULT",
+ "type": "http://arcos.rack/CLAIM#TEST_EXECUTION_PROPERTY_RESULT",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?PROPERTY",
+ "type": "http://arcos.rack/PROCESS#PROPERTY",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?TEST_EXECUTION_OUTCOME",
+ "type": "http://arcos.rack/CLAIM#TEST_EXECUTION_OUTCOME",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?CONTROL",
+ "type": "http://arcos.rack/SECURITY#CONTROL",
+ "mapping": [],
+ "props": []
+ }
+ ]
+ },
+ "plotSpecs": []
+}
\ No newline at end of file
diff --git a/RACK-Ontology/nodegroups/query_Claim_declares_scopeOf.json b/RACK-Ontology/nodegroups/query_Claim_declares_scopeOf.json
new file mode 100644
index 00000000..e1143534
--- /dev/null
+++ b/RACK-Ontology/nodegroups/query_Claim_declares_scopeOf.json
@@ -0,0 +1,192 @@
+{
+ "version": 3,
+ "sparqlConn": {
+ "name": "RACK local fuseki Apache Phase 2",
+ "domain": "",
+ "enableOwlImports": false,
+ "model": [
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/model"
+ }
+ ],
+ "data": [
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/data"
+ },
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/mitre-cwe"
+ },
+ {
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK",
+ "graph": "http://rack001/nist-800-53"
+ }
+ ]
+ },
+ "sNodeGroup": {
+ "version": 19,
+ "limit": 0,
+ "offset": 0,
+ "sNodeList": [
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?scopeOf_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [],
+ "fullURIName": "http://arcos.rack/SECURITY#CONTROL",
+ "SparqlID": "?CONTROL",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?declares_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [
+ {
+ "SnodeSparqlIDs": [
+ "?CONTROL"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROV-S#ENTITY"
+ ],
+ "ConnectBy": "scopeOf",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/PROCESS#scopeOf"
+ }
+ ],
+ "fullURIName": "http://arcos.rack/PROCESS#PROPERTY",
+ "SparqlID": "?PROPERTY",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ },
+ {
+ "propList": [
+ {
+ "valueTypes": [
+ "string"
+ ],
+ "rangeURI": "http://www.w3.org/2001/XMLSchema#string",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "Constraints": "",
+ "SparqlID": "?CLAIM_identifier",
+ "isReturned": true,
+ "optMinus": 0,
+ "isRuntimeConstrained": false,
+ "instanceValues": [],
+ "isMarkedForDeletion": false
+ }
+ ],
+ "nodeList": [
+ {
+ "SnodeSparqlIDs": [
+ "?PROPERTY"
+ ],
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "DeletionMarkers": [
+ false
+ ],
+ "range": [
+ "http://arcos.rack/PROCESS#PROPERTY"
+ ],
+ "ConnectBy": "declares",
+ "Connected": true,
+ "UriConnectBy": "http://arcos.rack/CLAIM#declares"
+ }
+ ],
+ "fullURIName": "http://arcos.rack/CLAIM#CLAIM",
+ "SparqlID": "?CLAIM",
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "valueConstraint": "",
+ "instanceValue": null,
+ "deletionMode": "NO_DELETE"
+ }
+ ],
+ "orderBy": [],
+ "groupBy": [],
+ "unionHash": {},
+ "columnOrder": []
+ },
+ "importSpec": {
+ "version": "1",
+ "baseURI": "",
+ "columns": [],
+ "dataValidator": [],
+ "texts": [],
+ "transforms": [],
+ "nodes": [
+ {
+ "sparqlID": "?CLAIM",
+ "type": "http://arcos.rack/CLAIM#CLAIM",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?PROPERTY",
+ "type": "http://arcos.rack/PROCESS#PROPERTY",
+ "mapping": [],
+ "props": []
+ },
+ {
+ "sparqlID": "?CONTROL",
+ "type": "http://arcos.rack/SECURITY#CONTROL",
+ "mapping": [],
+ "props": []
+ }
+ ]
+ },
+ "plotSpecs": []
+}
\ No newline at end of file
diff --git a/nodegroups/queries/report data verification.json b/RACK-Ontology/nodegroups/report data verification.json
similarity index 100%
rename from nodegroups/queries/report data verification.json
rename to RACK-Ontology/nodegroups/report data verification.json
diff --git a/nodegroups/queries/setup-arcos-ApachePhase2.json b/RACK-Ontology/nodegroups/setup-arcos-ApachePhase2.json
similarity index 100%
rename from nodegroups/queries/setup-arcos-ApachePhase2.json
rename to RACK-Ontology/nodegroups/setup-arcos-ApachePhase2.json
diff --git a/nodegroups/queries/store_data.csv b/RACK-Ontology/nodegroups/store_data.csv
similarity index 86%
rename from nodegroups/queries/store_data.csv
rename to RACK-Ontology/nodegroups/store_data.csv
index b5f83b44..6118076c 100644
--- a/nodegroups/queries/store_data.csv
+++ b/RACK-Ontology/nodegroups/store_data.csv
@@ -31,3 +31,7 @@ query dataVer unlinked SWCOMPONENT,Find SWCOMPONENT w/o -wasImpactedBy-> REQUIRE
report data verification,Run the dataVer nodegroups,rack,report data verification.json,Report
setup ARCOS Apache Phase 2,doesn't return anything; used to setup the connections with Apache datagraphs,rack,setup-arcos-ApachePhase2.json,PrefabNodeGroup
query Requirement Review same Agent,Demonstration of a nodegroup that isn't a tree structure,rack,query Requirement Review same Agent.json,PrefabNodeGroup
+query Claim declares Property,Query for Claim that declares a Property demonstrated by a Test Execution,rack,query_Claim_declares_addresses.json,PrefabNodeGroup
+query Claim declares Property with scopeOf Control,Query for Claim that declares a Property with the scopeOf a Control,rack,query_Claim_declares_scopeOf.json,PrefabNodeGroup
+query Claim Property PropertyResult Activity,Query for Claim that declares a Property demonstrated by a Property Result generated by an Activity,rack,query_Claim_Property_PropertyResult_Activity.json,PrefabNodeGroup
+query Claim Property PropertyResult Review,Query for Claim that declares a Property demonstrated by a Property Result generated by a Review w/Results,rack,query_Claim_Property_PropertyResult_Review.json,PrefabNodeGroup
diff --git a/RACK-Ontology/ontology/AGENTS.sadl b/RACK-Ontology/ontology/AGENTS.sadl
index 4f0232f1..1c701cb6 100644
--- a/RACK-Ontology/ontology/AGENTS.sadl
+++ b/RACK-Ontology/ontology/AGENTS.sadl
@@ -29,14 +29,14 @@ ORGANIZATION
PERSON (note "Person agents are people - alias for User")
is a type of AGENT.
-
emailAddress (note "Email address of person")
describes PERSON with values of type string.
-
employedBy (note "Relates people to the company they were acting on behalf of.")
describes PERSON with values of type AGENT.
employedBy describes PERSON with at most 1 value of type AGENT.
employedBy is a type of actedOnBehalfOf.
+ role (note "The role a person played in the performance of an activity (tester, witness, etc.)")
+ describes PERSON with values of type string.
TOOL
(note "An aid (software, hardware, etc) that automates the performance of an activity.")
diff --git a/RACK-Ontology/ontology/TESTING.sadl b/RACK-Ontology/ontology/TESTING.sadl
index 9b240fcd..4a5e3955 100644
--- a/RACK-Ontology/ontology/TESTING.sadl
+++ b/RACK-Ontology/ontology/TESTING.sadl
@@ -18,6 +18,7 @@
uri "http://arcos.rack/TESTING" alias tst.
import "http://arcos.rack/PROV-S".
+import "http://arcos.rack/FILE".
TEST
(note "Description of a single test")
@@ -48,24 +49,25 @@ TEST_RESULT
TEST_PROCEDURE (note "A TEST_PROCEDURE is the TEST_STEPs that perform TESTs. ") is a type of COLLECTION.
- content of TEST_PROCEDURE only has values of type TEST_STEP.
+ independentTest describes TEST_PROCEDURE only has values of type TEST_STEP.
+ independentTest is a type of content.
- TEST_STEP (note "A TEST_STEP is a collection of TESTs that are performed in a single execution")is a type of COLLECTION.
- content of TEST_STEP only has values of type TEST.
- nextStep (note "The next TEST_STEP in a sequence" ) describes TEST_STEP with values of type TEST_STEP.
- nextStep of TEST_STEP has at most 1 value.
+TEST_STEP (note "A TEST_STEP is a collection of TESTs that are performed in a single execution") is a type of ENTITY.
+ thisStep (note "The TEST performed by this TEST_STEP") of TEST_STEP has a single value of type TEST.
+ nextStep (note "The next TEST_STEP in a sequence" ) describes TEST_STEP with values of type TEST_STEP.
TEST_LOG (note "A TEST_LOG is the TEST_RESULTs from executing a TEST_PROCEDURE") is a type of COLLECTION.
content of TEST_LOG only has values of type TEST_RECORD.
- TEST_RECORD (note "a TEST_RECORD is a collection of TEST_RESULTs associated with a TEST_STEP") is a type of COLLECTION.
- content of TEST_RECORD only has values of type TEST_RESULT.
- nextRecord (note "The next TEST_RECORD that is the next in a sequence " ) describes TEST_RECORD with values of type TEST_RECORD.
- nextRecord of TEST_RECORD has at most 1 value.
- logs (note "TEST_STEP for which the TEST_RECORD is captured" ) describes TEST_RECORD with a single value of type TEST_STEP.
- logs is a type of wasImpactedBy.
-
+TEST_RECORD (note "a TEST_RECORD identifies the configuration under which a set of tests was run") is a type of ENTITY.
+ testRecordProcedure (note "the TEST_PROCEDURE for which this TEST_RECORD was created") describes TEST_RECORD with a single value of type TEST_PROCEDURE.
+ testRecordSteps (note "the initial TEST_STEPs performed") describes TEST_RECORD with values of type TEST_STEP.
+ testConfiguration (note "the configuration information for this TEST_EXECUTION") describes TEST_RECORD with values of type ENTITY.
+ targetPackage (note "is the target FILE tested") describes TEST_RECORD with values of type FILE.
+ targetVersion (note "is the version of the targetPackage tested") describes TEST_RECORD with a single value of type string.
+ testPackage (note "is the test FILE executed") describes TEST_RECORD with values of type FILE.
+ testVersion (note "is the version of the testPackage run") describes TEST_RECORD with a single value of type string.
TEST_DEVELOPMENT
(note "ACTIVITY of creating a TEST to participate in the evaluation of a requirement")
@@ -77,3 +79,16 @@ TEST_EXECUTION
testProcedure (note "TEST_PROCEDURE that was executed.") describes TEST_EXECUTION with values of type TEST_PROCEDURE.
testProcedure is a type of used.
+ testLog (note "TEST_LOG that was generated") describes TEST_EXECUTION with values of type TEST_LOG.
+ testLog is a type of goal.
+
+TEST_ANNOTATION (note "provides additional information about a TEST_RESULT") is a type of ENTITY.
+ annotatedValue describes TEST_ANNOTATION with values of type TEST_ANNOTATION_VALUE.
+ annotatedResult (note "identifies the TEST_RESULT being annotated") describes TEST_ANNOTATION with values of type TEST_RESULT.
+
+TEST_ANNOTATION_VALUE (note "values for a TEST_ANNOTATION value") is a type of THING
+ must be one of {IgnoredFailureOOB}.
+
+IgnoredFailureOOB is a TEST_ANNOTATION_VALUE
+ identifier "IgnoredFailure"
+ title "Ignored Failure based on Out-Of-Band information".
diff --git a/RTX-Ontology/OwlModels/ont-policy.rdf b/RTX-Ontology/OwlModels/ont-policy.rdf
deleted file mode 100644
index 7a46e6b1..00000000
--- a/RTX-Ontology/OwlModels/ont-policy.rdf
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
- platform:/resource/RTX-Ontology/ontology/RTX.sadl
- aace
- SADL
-
-
-
-
-
- platform:/resource/RTX-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
- builtinfunctions
- SADL
-
-
-
-
-
- sadllistmodel
- SADL
-
-
-
-
-
- platform:/resource/RTX-Ontology/ImplicitModel/SadlImplicitModel.sadl
- sadlimplicitmodel
- SADL
-
-
-
-
-
- sadlbasemodel
- SADL
-
-
-
-
-
diff --git a/SRI-Ontology/OwlModels/configuration.rdf b/SRI-Ontology/OwlModels/configuration.rdf
deleted file mode 100644
index 4a026ed3..00000000
--- a/SRI-Ontology/OwlModels/configuration.rdf
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- file:/RACK/RACK-Ontology
-
-
-
-
diff --git a/SRI-Ontology/OwlModels/ont-policy.rdf b/SRI-Ontology/OwlModels/ont-policy.rdf
deleted file mode 100644
index 9e365204..00000000
--- a/SRI-Ontology/OwlModels/ont-policy.rdf
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
- platform:/resource/SRI-Ontology/ontology/SRI.sadl
- DesCert
- SADL
-
-
-
-
-
- platform:/resource/SRI-Ontology/ontology/SRI-SS.sadl
- SS
- SADL
-
-
-
-
-
- platform:/resource/SRI-Ontology/ImplicitModel/SadlImplicitModel.sadl
- sadlimplicitmodel
- SADL
-
-
-
-
-
- platform:/resource/SRI-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
- builtinfunctions
- SADL
-
-
-
-
-
- sadlbasemodel
- SADL
-
-
-
-
-
- sadllistmodel
- SADL
-
-
-
-
-
diff --git a/STR-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl b/STR-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
deleted file mode 100644
index a7e8f134..00000000
--- a/STR-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
+++ /dev/null
@@ -1,245 +0,0 @@
-uri "http://sadl.org/builtinfunctions" alias builtinfunctions.
-
-External addOne(decimal X) returns decimal:
-"org.apache.jena.reasoner.rulesys.builtins#addOne".
-
-External bound(string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#bound".
-
-External countLiteralValues(string X, string X) returns int:
-"org.apache.jena.reasoner.rulesys.builtins#countLiteralValues".
-
-External difference(decimal X, decimal X) returns decimal:
-"org.apache.jena.reasoner.rulesys.builtins#difference".
-
-External ge(decimal X, decimal X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#ge".
-
-External le(decimal X, decimal X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#le".
-
-External isBNode(string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#isBNode".
-
-External isDType(string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#isDType".
-
-External isLiteral(string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#isLiteral".
-
-External listContains(string X, string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#listContains".
-
-External listEntry(string X, int X) returns string:
-"org.apache.jena.reasoner.rulesys.builtins#listEntry".
-
-External listEqual(string X, string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#listEqual".
-
-External listMapAsObject(string X, string X, string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#listMapAsObject".
-
-External listMapAsSubject(string X, string X, string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#listMapAsSubject".
-
-External listNotContains(string X, string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#listNotContains".
-
-External listNotEqual(string X, string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#listNotEqual".
-
-External notBNode(string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#notBNode".
-
-External notBType(string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#notBType".
-
-External notDType(string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#notDType".
-
-External notLiteral(string X) returns boolean:
-"org.apache.jena.reasoner.rulesys.builtins#notLiteral".
-
-External now() returns dateTime:
-"org.apache.jena.reasoner.rulesys.builtins#now".
-
-External regex(string X, string X) returns string:
-"org.apache.jena.reasoner.rulesys.builtins#regex".
-
-External strConcat(string X, ...) returns string:
-"org.apache.jena.reasoner.rulesys.builtins#strConcat".
-
-External uriConcat(string X, string X) returns string:
-"org.apache.jena.reasoner.rulesys.builtins#uriConcat".
-
-External pow(decimal X, decimal X) returns decimal:
-"org.apache.jena.reasoner.rulesys.builtins#pow".
-
-External sqrt(decimal X) returns decimal:
-"org.apache.jena.reasoner.rulesys.builtins#sqrt".
-
-External unbound(string X) returns string:
-"org.apache.jena.reasoner.rulesys.builtins#unbound".
-
-External isListHead(--):
-"com.naturalsemantics.sadl.jena.reasoner.builtin#isListHead".
-
-External elementAfter(--, --) returns --:
-"com.naturalsemantics.sadl.jena.reasoner.builtin#elementAfter".
-
-External ^index(--, --) returns int:
-"com.naturalsemantics.sadl.jena.reasoner.builtin#index".
-
-External deleteElementFromList(--, int X) returns --:
-"com.naturalsemantics.sadl.jena.reasoner.builtin#deleteElementFromList".
-
-External elementBefore(--, --) returns --:
-"com.naturalsemantics.sadl.jena.reasoner.builtin#elementBefore".
-
-External insertElementInList(--, --, int X) returns --:
-"com.naturalsemantics.sadl.jena.reasoner.builtin#insertElementInList".
-
-External elementInList(--, int X) returns --:
-"com.naturalsemantics.sadl.jena.reasoner.builtin#elementInList".
-
-External sadlListToString(--) returns string:
-"com.naturalsemantics.sadl.jena.reasoner.builtin#sadlListToString".
-
-External lastElement(--) returns --:
-"com.naturalsemantics.sadl.jena.reasoner.builtin#lastElement".
-
-External firstElement(--) returns --:
-"com.naturalsemantics.sadl.jena.reasoner.builtin#firstElement".
-
-External listLength(--) returns int:
-"com.naturalsemantics.sadl.jena.reasoner.builtin#listLength".
-
-External sqrt(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#sqrt".
-
-External max(decimal X, decimal X, ...) returns decimal:
-"com.ge.research.sadl.jena.reasoner.builtin#max".
-
-External listSubtract(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#listSubtract".
-
-External list(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#list".
-
-External tan(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#tan".
-
-External lessThan(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#lessThan".
-
-External localname(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#localname".
-
-External assign(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#assign".
-
-External noValuesOtherThan(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#noValuesOtherThan".
-
-External getInstance(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#getInstance".
-
-External listToString(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#listToString".
-
-External ^unique(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#unique".
-
-External pow(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#pow".
-
-External oneOf(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#oneOf".
-
-External thereExists(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#thereExists".
-
-External getClassFromConstraint(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#getClassFromConstraint".
-
-External noValue(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#noValue".
-
-External strbefore(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#strbefore".
-
-External subtractDates(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#subtractDates".
-
-External acos(decimal X) returns decimal:
-"com.ge.research.sadl.jena.reasoner.builtin#acos".
-
-External atan(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#atan".
-
-External noUnknownValues(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#noUnknownValues".
-
-External greaterThan(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#greaterThan".
-
-External countMatches(...) returns int:
-"com.ge.research.sadl.jena.reasoner.builtin#countMatches".
-
-External cos(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#cos".
-
-External abs(decimal X) returns decimal:
-"com.ge.research.sadl.jena.reasoner.builtin#abs".
-
-External notOnlyValue(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#notOnlyValue".
-
-External sum(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#sum".
-
-External min(decimal X, decimal X, ...) returns decimal:
-"com.ge.research.sadl.jena.reasoner.builtin#min".
-
-External noSubjectsOtherThan(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#noSubjectsOtherThan".
-
-External strafter(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#strafter".
-
-External sin(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#sin".
-
-External asin(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#asin".
-
-External listConcat(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#listConcat".
-
-External average(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#average".
-
-External mod(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#mod".
-
-External print(--, ...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#print".
-
-External floor(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#floor".
-
-External product(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#product".
-
-External countUniqueMatches(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#countUniqueMatches".
-
-External ceiling(...) returns --:
-"com.ge.research.sadl.jena.reasoner.builtin#ceiling".
-
-External ^table(--) returns --:
-"org.apache.jena.reasoner.rulesys.builtins#table".
-
-External tableAll(--) returns --:
-"org.apache.jena.reasoner.rulesys.builtins#tableAll".
-
diff --git a/STR-Ontology/ImplicitModel/SadlImplicitModel.sadl b/STR-Ontology/ImplicitModel/SadlImplicitModel.sadl
deleted file mode 100644
index 104c2ae7..00000000
--- a/STR-Ontology/ImplicitModel/SadlImplicitModel.sadl
+++ /dev/null
@@ -1,64 +0,0 @@
-uri "http://sadl.org/sadlimplicitmodel" alias sadlimplicitmodel.
-/****** The content of this model is automatically included in every SADL model ******/
-
-impliedProperty is a type of annotation.
-expandedProperty is a type of annotation.
-ScientificConcept is a class.
-UnittedQuantity is a type of ScientificConcept,
- described by ^value with values of type decimal,
- described by stddev with values of type decimal,
- described by unit with values of type string.
-
-DataDescriptor is a class, described by localDescriptorName (note "If this DataDescriptor is associated with a named parameter, this is the name") with a single value of type string,
- described by dataType (note "the simple data type, e.g., float") with a single value of type anyURI,
- described by specifiedUnits (note "the array of possible units") with a single value of type string List,
- described by augmentedType (note "ties the DataDescriptor to the semantic domain model") with values of type AugmentedType,
- described by descriptorVariable (note "This identifies the GPVariable, if any, in the AugmentedType which is associated with this DataDescriptor").
-dataType of DataDescriptor has at most 1 value.
-descriptorVariable of DataDescriptor has at most 1 value.
-
-Language is a class.
-{Java, Python, Text, OtherLanguage} are instances of Language.
-Script is a class, described by language with a single value of type Language,
- described by script with a single value of type string.
-^Equation is a class,
- described by expression with values of type Script.
-arguments describes ^Equation with a single value of type DataDescriptor List.
-returnTypes describes ^Equation with a single value of type DataDescriptor List.
-
-ExternalEquation is a type of ^Equation,
- described by externalURI with a single value of type anyURI,
- described by externalURL with values of type anyURI.
-
-AugmentedType is a class.
-SemanticType (note "allows direct specification of the semantic type of an argument") is a type of AugmentedType,
- described by semType with a single value of type class.
-GraphPattern is a class.
-{TriplePattern, FunctionPattern} are types of GraphPattern.
-gpSubject describes TriplePattern.
-gpPredicate describes TriplePattern.
-gpObject describes TriplePattern.
-builtin describes FunctionPattern with a single value of type ^Equation.
-GPAtom is a class.
-{GPVariable, GPLiteralValue, GPResource} are types of GPAtom.
-gpVariableName describes GPVariable with a single value of type string.
-gpLiteralValue describes GPLiteralValue with values of type data.
-argValues (note "values of arguments to the built-in") describes FunctionPattern with a single value of type GPAtom List.
-
-SemanticConstraint (note "used to identify necessary patterns in semantic domain terms") is a type of AugmentedType,
- described by constraints with a single value of type GraphPattern List.
-ThisArgument (note "allows reference to self within an Argument's constraints") is a DataDescriptor.
-
-anyDataType (note "union of all relevant data types") is a type of {decimal or boolean or string or date or dateTime or anyURI}.
-DataTableRow is a class,
- described by rowValues with a single value of type anyDataType List.
-DataTable is a class,
- described by columnDescriptors with a single value of type DataDescriptor List,
- described by dataContent with a single value of type DataTableRow List,
- described by dataLocation with a single value of type anyURI.
-
-^Rule is a class.
-NamedQuery is a class.
-derivedFrom (note "for use with named structures (Equations, NamedQueries, ...), where it has special SADL syntax")
- is a type of annotation.
-Plus is a GPAtom.
diff --git a/STR-Ontology/OwlModels/ont-policy.rdf b/STR-Ontology/OwlModels/ont-policy.rdf
deleted file mode 100644
index ff6a5ca3..00000000
--- a/STR-Ontology/OwlModels/ont-policy.rdf
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
- sadllistmodel
- SADL
-
-
-
-
-
- platform:/resource/STR-Ontology/ontology/STR.sadl
-
-
- SADL
- Arbiter
-
-
-
- platform:/resource/STR-Ontology/ImplicitModel/SadlImplicitModel.sadl
-
-
- SADL
- sadlimplicitmodel
-
-
-
- sadlbasemodel
- SADL
-
-
-
-
-
- platform:/resource/STR-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
-
-
- SADL
- builtinfunctions
-
-
-
diff --git a/Turnstile-Example/Assemble-TurnstileData.sh b/Turnstile-Example/Assemble-TurnstileData.sh
new file mode 100755
index 00000000..fa8fbcd9
--- /dev/null
+++ b/Turnstile-Example/Assemble-TurnstileData.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+# Copyright (c) 2020, General Electric Company and Galois, Inc.
+set -eu
+BASEDIR=$(cd "$(dirname "$0")"; pwd)
+echo "$BASEDIR"
+TOPDIR="${BASEDIR}/.."
+ASSISTDIR="${TOPDIR}/assist"
+
+cd "$BASEDIR"/Turnstile-IngestionPackage/CounterApplicationImplementation
+export PATH="${ASSISTDIR}/bin:${ASSISTDIR}/databin:${PATH}"
+make clean
+make
+make test
+make dist
+ingest_data -r "${BASEDIR}"/Turnstile-IngestionPackage/turnstile-ingest.rack \
+ -O "${TOPDIR}"/GE-Ontology \
+ -O "${TOPDIR}"/RACK-Ontology \
+ -o "${BASEDIR}"/Turnstile-IngestionPackage/BuildProcess/turnstile-build.owl \
+ http://rack001/turnstiledata .
+
+cd "$BASEDIR"
+rack manifest build Turnstile-IngestionPackage/manifest.yaml turnstile-ingestion-package
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/BuildProcess/.gitignore b/Turnstile-Example/Turnstile-IngestionPackage/BuildProcess/.gitignore
new file mode 100644
index 00000000..1eefc674
--- /dev/null
+++ b/Turnstile-Example/Turnstile-IngestionPackage/BuildProcess/.gitignore
@@ -0,0 +1 @@
+/turnstile-build.owl
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/BuildProcess/README.md b/Turnstile-Example/Turnstile-IngestionPackage/BuildProcess/README.md
new file mode 100644
index 00000000..e310333e
--- /dev/null
+++ b/Turnstile-Example/Turnstile-IngestionPackage/BuildProcess/README.md
@@ -0,0 +1,3 @@
+# Build Process Data
+
+This directory contains `turnstile-build.owl` which is generated by `Assemble-TurnstileData.sh`
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/BuildProcess/data.yaml b/Turnstile-Example/Turnstile-IngestionPackage/BuildProcess/data.yaml
new file mode 100644
index 00000000..29be2aa1
--- /dev/null
+++ b/Turnstile-Example/Turnstile-IngestionPackage/BuildProcess/data.yaml
@@ -0,0 +1,3 @@
+data-graph: "http://rack001/turnstiledata"
+ingestion-steps:
+- owl: turnstile-build.owl
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationImplementation/README.md b/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationImplementation/README.md
index ee4ca0e8..49bc9e49 100644
--- a/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationImplementation/README.md
+++ b/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationImplementation/README.md
@@ -43,6 +43,7 @@ $ swipl --version
Prolog can be installed/updated on Debian/Ubuntu via the following steps:
```
+# You can skip adding ppa repo on Ubuntu 22.04 or later
$ sudo add-apt-repository ppa:swi-prolog/stable
$ sudo apt-get update
$ sude apt-get install swi-prolog
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationRequirementSpec/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationRequirementSpec/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationRequirementSpec/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationRequirementSpec/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationReviews/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationReviews/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationReviews/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationReviews/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationSoftwareDes/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationSoftwareDes/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationSoftwareDes/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationSoftwareDes/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationTesting/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationTesting/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationTesting/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationTesting/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationUnitTesting/OwlModels/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationUnitTesting/OwlModels/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationUnitTesting/OwlModels/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationUnitTesting/OwlModels/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/HazardAssessment/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/HazardAssessment/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/HazardAssessment/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/HazardAssessment/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/Load-TurnstileData.sh b/Turnstile-Example/Turnstile-IngestionPackage/Load-TurnstileData.sh
deleted file mode 100755
index 0feac6be..00000000
--- a/Turnstile-Example/Turnstile-IngestionPackage/Load-TurnstileData.sh
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/bin/bash
-# Copyright (c) 2020, General Electric Company and Galois, Inc.
-set -eu
-BASEDIR=$(cd "$(dirname "$0")"; pwd)
-echo "$BASEDIR"
-if ! command -v rack > /dev/null
-then
- cat <<-END
- ERROR: rack cli tool not found in PATH
-
- Installation instructions are available at
- https://github.com/ge-high-assurance/RACK/wiki/RACK-CLI#install-dependencies
- or locally in README.md
-
- If you've already installed RACK CLI, please activate your virtual environment
-
- macOS/Linux: source venv/bin/activate
- Windows: venv\\Scripts\\activate.bat
- PowerShell: venv\\Scripts\\Activate.ps1
- END
- exit 1
-fi
-
-# suppress RACK cli warnings about missing columns
-export LOG_LEVEL=ERROR
-
-if test "$OSTYPE" == "cygwin" -o "$OSTYPE" == "msys"; then
-URLBASE=$(cygpath -m "$BASEDIR")
-else
-URLBASE="$BASEDIR"
-fi
-
-echo "Updating File references..."
-find "$BASEDIR" -name "*.csv" -exec sed -i -e "s|{{BASEDIR}}|$URLBASE|g" {} +
-
-echo "Clear data-graph http://rack001/turnstiledata"
-rack data clear --data-graph "http://rack001/turnstiledata"
-
-echo "Ingesting Counter Application Unit Testing ..."
-echo "(Have to do this one first because it ingests triples, as a demonstration. The rest is ingested via nodegroups.)"
-rack data import "$BASEDIR"/CounterApplicationUnitTesting/OwlModels/import.yaml
-
-echo "Ingesting Development Plan Data ..."
-rack data import "$BASEDIR"/TurnstileDevelopmentPlanData/import.yaml
-
-echo "Ingesting Planning Document Evidence ..."
-rack data import "$BASEDIR"/PlanningDocuments/import.yaml
-
-echo "Ingesting Hazard Assessment Evidence ..."
-rack data import "$BASEDIR"/HazardAssessment/import.yaml
-
-echo "Ingesting System Design Evidence ..."
-rack data import "$BASEDIR"/TurnstileSystemDesign/import.yaml
-
-echo "Ingesting Requirements ..."
-rack data import "$BASEDIR"/TurnstileSystemRequirements/import.yaml
-rack data import "$BASEDIR"/TurnstileHighLevelRequirements/import.yaml
-rack data import "$BASEDIR"/TurnstileLowLevelRequirements/import.yaml
-echo "Ingesting Requirement Model..."
-rack data import "$BASEDIR"/TurnstileRequirementModel/import.yaml
-
-echo "Ingesting Counter Application Review ..."
-rack data import "$BASEDIR"/CounterApplicationReviews/import.yaml
-
-echo "Ingesting Counter Application Testing ..."
-rack data import "$BASEDIR"/CounterApplicationTesting/import.yaml
-
-echo "Ingesting System Spec ..."
-rack data import "$BASEDIR"/TurnstileSystemSpec/import.yaml
-
-echo "Ingesting Counter Application Requirement Spec ..."
-rack data import "$BASEDIR"/CounterApplicationRequirementSpec/import.yaml
-
-echo "Ingesting Counter Application Software Design ..."
-rack data import "$BASEDIR"/CounterApplicationSoftwareDes/import.yaml
-
-echo "Ingesting System Verification Report ..."
-rack data import "$BASEDIR"/SystemVerificationReport/import.yaml
-
-echo "Ingesting Objectives ..."
-rack data import "$BASEDIR"/Objectives/import.yaml
-
-echo "Ingesting Baselines ..."
-rack data import "$BASEDIR"/TurnstileBaselines/import.yaml
-
-echo "----------------------------------------------------------------------"
-echo "Static data ingestion completed. Will now attempt to build the"
-echo "Turnstile source code while using ASSIST to capture the dynamic"
-echo "build information and upload the result to RACK. This may fail"
-echo "if the current environment does not support the software build"
-echo "process (it will succeed if run via the RACK-in-a-Box process)."
-echo
-echo "Example:"
-echo " $ docker exec -w /home/ubuntu/RACK/Turnstile-Example/Turnstile-IngestionPackage CONTAINER ./Load-TurnstileData.sh"
-echo
-echo "Errors after this point will result in partial (but still useable)"
-echo "Turnstile sample data"
-echo
-
-(
- set -e
- cd "$BASEDIR"/CounterApplicationImplementation
- export PATH="${BASEDIR}/../../assist/bin:${BASEDIR}/../../assist/databin:${PATH}"
- make clean
- make
- make test
- make dist
- ingest_data -r "${BASEDIR}/turnstile-ingest.rack" -O "${BASEDIR}"/../../GE-Ontology http://rack001/turnstiledata .
-)
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/Objectives/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/Objectives/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/Objectives/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/Objectives/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/PlanningDocuments/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/PlanningDocuments/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/PlanningDocuments/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/PlanningDocuments/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/README.md b/Turnstile-Example/Turnstile-IngestionPackage/README.md
index 56b04ec6..4271c325 100644
--- a/Turnstile-Example/Turnstile-IngestionPackage/README.md
+++ b/Turnstile-Example/Turnstile-IngestionPackage/README.md
@@ -34,8 +34,9 @@ The script [setup-turnstile.sh](../../cli/setup-turnstile.sh) loads the [GE onto
## Ingest the turnstile data into RACK:
Browse to the dataset location and load the data via the provided shell script.
```sh
-(venv) $ cd ${RACK}/Turnstile-Example/Turnstile-IngestionPackage
-(venv) $ ./Load-TurnstileData.sh
+(venv) $ cd ${RACK}/Turnstile-Example
+(venv) $ ./Assemble-TurnstileData.sh # this generates turnstile-ingestion-package.zip
+(venv) $ rack manifest import turnstile-ingestion-package.zip
```
## Export the data from RACK
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/SystemVerificationReport/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/SystemVerificationReport/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/SystemVerificationReport/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/SystemVerificationReport/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/TurnstileBaselines/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/TurnstileBaselines/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/TurnstileBaselines/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/TurnstileBaselines/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/TurnstileDevelopmentPlanData/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/TurnstileDevelopmentPlanData/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/TurnstileDevelopmentPlanData/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/TurnstileDevelopmentPlanData/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/TurnstileHighLevelRequirements/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/TurnstileHighLevelRequirements/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/TurnstileHighLevelRequirements/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/TurnstileHighLevelRequirements/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/TurnstileLowLevelRequirements/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/TurnstileLowLevelRequirements/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/TurnstileLowLevelRequirements/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/TurnstileLowLevelRequirements/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/TurnstileRequirementModel/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/TurnstileRequirementModel/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/TurnstileRequirementModel/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/TurnstileRequirementModel/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/TurnstileSecurity/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/TurnstileSecurity/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/TurnstileSecurity/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/TurnstileSecurity/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/TurnstileSystemDesign/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/TurnstileSystemDesign/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/TurnstileSystemDesign/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/TurnstileSystemDesign/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/TurnstileSystemRequirements/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/TurnstileSystemRequirements/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/TurnstileSystemRequirements/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/TurnstileSystemRequirements/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/TurnstileSystemSpec/import.yaml b/Turnstile-Example/Turnstile-IngestionPackage/TurnstileSystemSpec/data.yaml
similarity index 100%
rename from Turnstile-Example/Turnstile-IngestionPackage/TurnstileSystemSpec/import.yaml
rename to Turnstile-Example/Turnstile-IngestionPackage/TurnstileSystemSpec/data.yaml
diff --git a/Turnstile-Example/Turnstile-IngestionPackage/manifest.yaml b/Turnstile-Example/Turnstile-IngestionPackage/manifest.yaml
index f4a08b3c..a11a00ae 100644
--- a/Turnstile-Example/Turnstile-IngestionPackage/manifest.yaml
+++ b/Turnstile-Example/Turnstile-IngestionPackage/manifest.yaml
@@ -8,21 +8,24 @@ footprint:
- http://rack001/do-178c
steps:
- - manifest: ../../manifests/turnstile.yaml
- - data: CounterApplicationUnitTesting/OwlModels/import.yaml
- - data: TurnstileDevelopmentPlanData/import.yaml
- - data: PlanningDocuments/import.yaml
- - data: HazardAssessment/import.yaml
- - data: TurnstileSystemDesign/import.yaml
- - data: TurnstileSystemRequirements/import.yaml
- - data: TurnstileHighLevelRequirements/import.yaml
- - data: TurnstileLowLevelRequirements/import.yaml
- - data: TurnstileRequirementModel/import.yaml
- - data: CounterApplicationReviews/import.yaml
- - data: CounterApplicationTesting/import.yaml
- - data: TurnstileSystemSpec/import.yaml
- - data: CounterApplicationRequirementSpec/import.yaml
- - data: CounterApplicationSoftwareDes/import.yaml
- - data: SystemVerificationReport/import.yaml
- - data: Objectives/import.yaml
- - data: TurnstileBaselines/import.yaml
+ - manifest: ../../RACK-Ontology/manifest.yaml
+ - manifest: ../../overlays/GE-Ontology/manifest.yaml
+ - manifest: ../../overlays/DO-178C/manifest.yaml
+ - data: CounterApplicationUnitTesting/OwlModels/data.yaml
+ - data: TurnstileDevelopmentPlanData/data.yaml
+ - data: PlanningDocuments/data.yaml
+ - data: HazardAssessment/data.yaml
+ - data: TurnstileSystemDesign/data.yaml
+ - data: TurnstileSystemRequirements/data.yaml
+ - data: TurnstileHighLevelRequirements/data.yaml
+ - data: TurnstileLowLevelRequirements/data.yaml
+ - data: TurnstileRequirementModel/data.yaml
+ - data: CounterApplicationReviews/data.yaml
+ - data: CounterApplicationTesting/data.yaml
+ - data: TurnstileSystemSpec/data.yaml
+ - data: CounterApplicationRequirementSpec/data.yaml
+ - data: CounterApplicationSoftwareDes/data.yaml
+ - data: SystemVerificationReport/data.yaml
+ - data: Objectives/data.yaml
+ - data: TurnstileBaselines/data.yaml
+ - data: BuildProcess/data.yaml
diff --git a/cli/README.md b/cli/README.md
index b7975ff9..f7e4c008 100644
--- a/cli/README.md
+++ b/cli/README.md
@@ -342,7 +342,7 @@ The script can automate loading a directory full of nodegroups
indexed by a `store_data.csv` file.
```shell
-(venv) $ rack nodegroups import ../nodegroups/ingestion/arcos.rack
+(venv) $ rack nodegroups import ../RACK-Ontology/nodegroups
Storing nodegroups... OK
```
diff --git a/cli/optimize.sh b/cli/optimize.sh
index 7dfc9e0f..a4e1bfa0 100755
--- a/cli/optimize.sh
+++ b/cli/optimize.sh
@@ -3,20 +3,26 @@
set -eu
-echo "Stopping Fuseki"
-FUSEKI_PID=$(systemctl show --property MainPID fuseki)
-FUSEKI_PID=${FUSEKI_PID#"MainPID="}
-if [ -n "${FUSEKI_PID}" ]; then
+if systemctl is-active --quiet fuseki; then
+
+ echo "Stopping Fuseki"
+
+ # remember the PID in case stopping fuseki doesn't stop it
+ FUSEKI_PID=$(systemctl show --property MainPID fuseki)
+ FUSEKI_PID=${FUSEKI_PID#"MainPID="}
+
systemctl stop fuseki
- # systemctl doesn't always seem to succeed, so be quite certain
- # until we figure out why it doesn't always succeed
- kill -9 "${FUSEKI_PID}" > /dev/null 2>&1
+
+ # systemctl stop doesn't always work, so kill -9 for now to be sure
+ if [ -n "${FUSEKI_PID}" ]; then
+ kill -9 "${FUSEKI_PID}" &> /dev/null || true
+ fi
fi
RACK_DB="/etc/fuseki/databases/RACK"
RACK_FUSEKI_CONFIG="/etc/fuseki/configuration/RACK.ttl"
-# Currently using TDB1, this should become tdb2.tdbstats for TDB2
-TDBSTATS="/opt/jena/bin/tdbstats"
+# Currently using TDB2, revert to tdbstats for TDB1
+TDBSTATS="/opt/jena/bin/tdb2.tdbstats"
TMP_STATS="/tmp/stats.opt"
# Usually it goes into a `Data-0001` subdirectory, but it seems that with our
# RACK.ttl configuration we just don't have the extra directory.
diff --git a/cli/rack/__init__.py b/cli/rack/__init__.py
index 85382f75..18d0791b 100755
--- a/cli/rack/__init__.py
+++ b/cli/rack/__init__.py
@@ -929,7 +929,7 @@ def get_argument_parser() -> argparse.ArgumentParser:
manifest_import_parser.add_argument('config', type=str, help='Manifest YAML file')
manifest_import_parser.add_argument('--clear', action='store_true', help='Clear footprint before import')
- manifest_import_parser.add_argument('--optimize', type=bool, help='Enable RACK UI optimization when available')
+ manifest_import_parser.add_argument('--optimize', default=True, action=argparse.BooleanOptionalAction, help='Enable RACK UI optimization when available')
manifest_import_parser.add_argument('--optimize-url', type=str, help='RACK UI optimization endpoint (e.g. http://localhost:8050/optimize)')
manifest_import_parser.set_defaults(func=dispatch_manifest_import)
diff --git a/cli/restart-fuseki.sh b/cli/restart-fuseki.sh
index 1067e2a0..65a5b444 100755
--- a/cli/restart-fuseki.sh
+++ b/cli/restart-fuseki.sh
@@ -3,14 +3,20 @@
set -e
-FUSEKI_PID=$(systemctl show --property MainPID fuseki)
-FUSEKI_PID=${FUSEKI_PID#"MainPID="}
+if systemctl is-active --quiet fuseki; then
+
+ echo "Stopping Fuseki"
+
+ # remember the PID in case stopping fuseki doesn't stop it
+ FUSEKI_PID=$(systemctl show --property MainPID fuseki)
+ FUSEKI_PID=${FUSEKI_PID#"MainPID="}
-if [ -n "${FUSEKI_PID}" ]; then
systemctl stop fuseki
- # systemctl doesn't always seem to succeed, so be quite certain
- # until we figure out why it doesn't always succeed
- kill -9 "${FUSEKI_PID}" > /dev/null 2>&1
+
+ # systemctl stop doesn't always work, so kill -9 for now to be sure
+ if [ -n "${FUSEKI_PID}" ]; then
+ kill -9 "${FUSEKI_PID}" &> /dev/null || true
+ fi
fi
systemctl start fuseki
diff --git a/cli/save-nodegroups.sh b/cli/save-nodegroups.sh
index 97c33150..bcc013c2 100755
--- a/cli/save-nodegroups.sh
+++ b/cli/save-nodegroups.sh
@@ -11,5 +11,4 @@ then
exit 1
fi
-rack nodegroups export "^ingest" ../../nodegroups/ingestion
-rack nodegroups export "^query " ../../nodegroups/queries
+rack nodegroups export "^query " ../RACK-Ontology/nodegroups
diff --git a/cli/setup-arcos.sh b/cli/setup-arcos.sh
index 8546b637..af361643 100755
--- a/cli/setup-arcos.sh
+++ b/cli/setup-arcos.sh
@@ -7,5 +7,5 @@ set -eu
TMP=$(mktemp -d -t ingestion_package_XXXXXX) || exit 1
trap 'rm -rf "$TMP"; trap - EXIT; exit' EXIT INT HUP
-rack manifest build ../manifests/arcos.yaml "${TMP}/output"
+rack manifest build ../overlays/arcos/manifest.yaml "${TMP}/output"
rack manifest import --clear "${TMP}/output.zip"
diff --git a/cli/setup-owl.sh b/cli/setup-owl.sh
index 8840f40e..cd4dd3cf 100755
--- a/cli/setup-owl.sh
+++ b/cli/setup-owl.sh
@@ -66,14 +66,13 @@ in
echo "[setup-owl] Copying OwlModels"
scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/RACK-Ontology/OwlModels" "${rack_dir}/RACK-Ontology/"
- scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/GE-Ontology/OwlModels" "${rack_dir}/GE-Ontology/"
- scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/GrammaTech-Ontology/OwlModels" "${rack_dir}/GrammaTech-Ontology/"
- scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/STR-Ontology/OwlModels" "${rack_dir}/STR-Ontology/"
- scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/Boeing-Ontology/OwlModels" "${rack_dir}/Boeing-Ontology/"
- scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/LM-Ontology/OwlModels" "${rack_dir}/LM-Ontology/"
- scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/SRI-Ontology/OwlModels" "${rack_dir}/SRI-Ontology/"
- scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/RTX-Ontology/OwlModels" "${rack_dir}/RTX-Ontology/"
- scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/Provenance-Example/OwlModels" "${rack_dir}/Provenance-Example/"
+ scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/overlays/GE-Ontology/OwlModels" "${rack_dir}/overlays/GE-Ontology/"
+ scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/overlays/GrammaTech-Ontology/OwlModels" "${rack_dir}/overlays/GrammaTech-Ontology/"
+ scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/overlays/STR-Ontology/OwlModels" "${rack_dir}/overlays/STR-Ontology/"
+ scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/overlays/Boeing-Ontology/OwlModels" "${rack_dir}/overlays/Boeing-Ontology/"
+ scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/overlays/LM-Ontology/OwlModels" "${rack_dir}/overlays/LM-Ontology/"
+ scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/overlays/SRI-Ontology/OwlModels" "${rack_dir}/overlays/SRI-Ontology/"
+ scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/overlays/RTX-Ontology/OwlModels" "${rack_dir}/overlays/RTX-Ontology/"
scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationUnitTesting/OwlModels" "${rack_dir}/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationUnitTesting/"
scp -q -i rack_ssh_key -r "ubuntu@${virtualbox_ip}:RACK/sadl-examples/OwlModels" "${rack_dir}/sadl-examples/"
@@ -98,14 +97,13 @@ in
echo "[setup-owl] Copying OwlModels"
$DOCKER cp "${container}:/home/ubuntu/RACK/RACK-Ontology/OwlModels/" "${rack_dir}/RACK-Ontology/"
- $DOCKER cp "${container}:/home/ubuntu/RACK/GE-Ontology/OwlModels/" "${rack_dir}/GE-Ontology/"
- $DOCKER cp "${container}:/home/ubuntu/RACK/GrammaTech-Ontology/OwlModels/" "${rack_dir}/GrammaTech-Ontology/"
- $DOCKER cp "${container}:/home/ubuntu/RACK/STR-Ontology/OwlModels/" "${rack_dir}/STR-Ontology/"
- $DOCKER cp "${container}:/home/ubuntu/RACK/Boeing-Ontology/OwlModels/" "${rack_dir}/Boeing-Ontology/"
- $DOCKER cp "${container}:/home/ubuntu/RACK/LM-Ontology/OwlModels/" "${rack_dir}/LM-Ontology/"
- $DOCKER cp "${container}:/home/ubuntu/RACK/SRI-Ontology/OwlModels/" "${rack_dir}/SRI-Ontology/"
- $DOCKER cp "${container}:/home/ubuntu/RACK/RTX-Ontology/OwlModels/" "${rack_dir}/RTX-Ontology/"
- $DOCKER cp "${container}:/home/ubuntu/RACK/Provenance-Example/OwlModels/" "${rack_dir}/Provenance-Example/"
+ $DOCKER cp "${container}:/home/ubuntu/RACK/overlays/GE-Ontology/OwlModels/" "${rack_dir}/overlays/GE-Ontology/"
+ $DOCKER cp "${container}:/home/ubuntu/RACK/overlays/GrammaTech-Ontology/OwlModels/" "${rack_dir}/overlays/GrammaTech-Ontology/"
+ $DOCKER cp "${container}:/home/ubuntu/RACK/overlays/STR-Ontology/OwlModels/" "${rack_dir}/overlays/STR-Ontology/"
+ $DOCKER cp "${container}:/home/ubuntu/RACK/overlays/Boeing-Ontology/OwlModels/" "${rack_dir}/overlays/Boeing-Ontology/"
+ $DOCKER cp "${container}:/home/ubuntu/RACK/overlays/LM-Ontology/OwlModels/" "${rack_dir}/overlays/LM-Ontology/"
+ $DOCKER cp "${container}:/home/ubuntu/RACK/overlays/SRI-Ontology/OwlModels/" "${rack_dir}/overlays/SRI-Ontology/"
+ $DOCKER cp "${container}:/home/ubuntu/RACK/overlays/RTX-Ontology/OwlModels/" "${rack_dir}/overlays/RTX-Ontology/"
$DOCKER cp "${container}:/home/ubuntu/RACK/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationUnitTesting/OwlModels/" "${rack_dir}/Turnstile-Example/Turnstile-IngestionPackage/CounterApplicationUnitTesting/"
$DOCKER cp "${container}:/home/ubuntu/RACK/sadl-examples/OwlModels/" "${rack_dir}/sadl-examples/"
diff --git a/cli/setup-rack.sh b/cli/setup-rack.sh
index ce17372a..068f3ac1 100755
--- a/cli/setup-rack.sh
+++ b/cli/setup-rack.sh
@@ -7,5 +7,5 @@ set -eu
TMP=$(mktemp -d -t ingestion_package_XXXXXX) || exit 1
trap 'rm -rf "$TMP"; trap - EXIT; exit' EXIT INT HUP
-rack manifest build ../manifests/rack.yaml "${TMP}/output"
+rack manifest build ../RACK-Ontology/manifest.yaml "${TMP}/output"
rack manifest import --clear "${TMP}/output.zip"
diff --git a/cli/setup-turnstile.sh b/cli/setup-turnstile.sh
deleted file mode 100755
index 0483cd42..00000000
--- a/cli/setup-turnstile.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2020, General Electric Company and Galois, Inc.
-set -eu
-
-./ensure-cli-in-PATH.sh
-
-TMP=$(mktemp -d -t ingestion_package_XXXXXX) || exit 1
-trap 'rm -rf "$TMP"; trap - EXIT; exit' EXIT INT HUP
-
-rack manifest build ../manifests/turnstile.yaml "${TMP}/output"
-rack manifest import --clear "${TMP}/output.zip"
diff --git a/cli/tests/rack_test.py b/cli/tests/rack_test.py
index 1bafdf90..9272858a 100644
--- a/cli/tests/rack_test.py
+++ b/cli/tests/rack_test.py
@@ -10,13 +10,9 @@
from rack import ingest_data_driver, ingest_owl_driver, run_query, sparql_connection, Url
-def test_load_csv(rack_in_a_box: str) -> None:
- # Just test that it doesn't raise an exception
- ingest_data_driver(Path("../Turnstile-Ontology/99-Utils/Data/Model.yaml"), Url(rack_in_a_box), None, None, None, None, False)
-
def test_load_owl(rack_in_a_box: str) -> None:
# Just test that it doesn't raise an exception
- ingest_owl_driver(Path("../RACK-Ontology/OwlModels/import.yaml"), Url(rack_in_a_box), None, None, None, False)
+ ingest_owl_driver(Path("../RACK-Ontology/OwlModels/model.yaml"), Url(rack_in_a_box), None, None, None, False)
def test_run_query(rack_in_a_box: str) -> None:
conn = sparql_connection(Url(rack_in_a_box), None, None, [], None, None)
diff --git a/manifests/arcos.yaml b/manifests/arcos.yaml
deleted file mode 100644
index 5679a0d7..00000000
--- a/manifests/arcos.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-name: 'ARCOS ontology'
-
-footprint:
- model-graphs:
- - http://rack001/model
- data-graphs:
- - http://rack001/nist-800-53
- - http://rack001/mitre-cwe
-
-steps:
- - manifest: rack.yaml
-
- - model: ../Boeing-Ontology/OwlModels/import.yaml
- - model: ../GrammaTech-Ontology/OwlModels/import.yaml
- - model: ../LM-Ontology/OwlModels/import.yaml
- - model: ../SRI-Ontology/OwlModels/import.yaml
- - model: ../STR-Ontology/OwlModels/import.yaml
- - model: ../RTX-Ontology/OwlModels/import.yaml
- - data: ../RACK-Ontology/ontology/NIST-800-53/import.yaml
- - model: ../RACK-Ontology/OwlModels/MITRE-CWE.yaml
- - nodegroups: ../nodegroups/arcos.cwe
- - data: ../RACK-Ontology/ontology/MITRE-CWE/import.yaml
- - data: ../RACK-Ontology/ontology/claims/import.yaml
diff --git a/manifests/entity_resolution.yaml b/manifests/entity_resolution.yaml
deleted file mode 100644
index ad8613ab..00000000
--- a/manifests/entity_resolution.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-name: 'Entity Resolution'
-copy-to-default-graph: true
-perform-entity-resolution: true
-perform-triplestore-optimization: true
-footprint:
- model-graphs:
- - http://rack001/model
- data-graphs:
- - http://rack001/data
-
-steps:
- - manifest: rack.yaml
- - data: ../EntityResolution/TestData/Package-1/import.yaml
- - data: ../EntityResolution/TestData/Package-2/import.yaml
- - data: ../EntityResolution/TestData/Package-3/import.yaml
- - data: ../EntityResolution/TestData/Resolutions-1/import.yaml
- - data: ../EntityResolution/TestData/Resolutions-2/import.yaml
diff --git a/manifests/rack.yaml b/manifests/rack.yaml
deleted file mode 100644
index d002739f..00000000
--- a/manifests/rack.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-name: 'RACK ontology'
-description: 'Base ontology for assurance case curation'
-
-footprint:
- model-graphs:
- - http://rack001/model
-
-steps:
- - model: ../RACK-Ontology/OwlModels/import.yaml
- - nodegroups: ../nodegroups/queries
diff --git a/manifests/turnstile.yaml b/manifests/turnstile.yaml
deleted file mode 100644
index aa0b66ca..00000000
--- a/manifests/turnstile.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-name: 'Turnstile ingestion'
-
-footprint:
- model-graphs:
- - http://rack001/model
- data-graphs:
- - http://rack001/do-178c
-
-steps:
- - manifest: rack.yaml
- - model: ../GE-Ontology/OwlModels/import.yaml
- - data: ../RACK-Ontology/ontology/DO-178C/import.yaml
diff --git a/nodegroups/README.md b/nodegroups/README.md
index 2b8c9ca8..ff09a532 100644
--- a/nodegroups/README.md
+++ b/nodegroups/README.md
@@ -7,10 +7,6 @@ and generate INSERT queries.
## Sub-folders
-Each sub-folder has nodegroups for particular purposes or applications.
-
-- **queries** - Sample derived RACK queries
-
These sub-folders will be in RACK-in-a-Box images but not in the git
repository because these sub-folders are automatically generated:
diff --git a/nodegroups/generate-cdrs.sh b/nodegroups/generate-cdrs.sh
index c3c083fe..053dae85 100755
--- a/nodegroups/generate-cdrs.sh
+++ b/nodegroups/generate-cdrs.sh
@@ -15,14 +15,14 @@ cli/ensure-cli-in-PATH.sh
# Import ontologies
rack model clear
-rack model import RACK-Ontology/OwlModels/import.yaml
-rack model import GE-Ontology/OwlModels/import.yaml
-rack model import Boeing-Ontology/OwlModels/import.yaml
-rack model import GrammaTech-Ontology/OwlModels/import.yaml
-rack model import LM-Ontology/OwlModels/import.yaml
-rack model import SRI-Ontology/OwlModels/import.yaml
-rack model import STR-Ontology/OwlModels/import.yaml
-rack model import RTX-Ontology/OwlModels/import.yaml
+rack model import RACK-Ontology/OwlModels/model.yaml
+rack model import overlays/GE-Ontology/OwlModels/model.yaml
+rack model import overlays/Boeing-Ontology/OwlModels/model.yaml
+rack model import overlays/GrammaTech-Ontology/OwlModels/model.yaml
+rack model import overlays/LM-Ontology/OwlModels/model.yaml
+rack model import overlays/SRI-Ontology/OwlModels/model.yaml
+rack model import overlays/STR-Ontology/OwlModels/model.yaml
+rack model import overlays/RTX-Ontology/OwlModels/model.yaml
# Remove old CDR files
diff --git a/nodegroups/queries/setAside/query nonuniqueIdentifiers.json b/nodegroups/setAside/query nonuniqueIdentifiers.json
similarity index 100%
rename from nodegroups/queries/setAside/query nonuniqueIdentifiers.json
rename to nodegroups/setAside/query nonuniqueIdentifiers.json
diff --git a/nodegroups/queries/setAside/query test empty thing.json b/nodegroups/setAside/query test empty thing.json
similarity index 100%
rename from nodegroups/queries/setAside/query test empty thing.json
rename to nodegroups/setAside/query test empty thing.json
diff --git a/nodegroups/queries/setAside/store_data.csv b/nodegroups/setAside/store_data.csv
similarity index 100%
rename from nodegroups/queries/setAside/store_data.csv
rename to nodegroups/setAside/store_data.csv
diff --git a/overlays/ARP-4754A/.project b/overlays/ARP-4754A/.project
new file mode 100644
index 00000000..25b2327d
--- /dev/null
+++ b/overlays/ARP-4754A/.project
@@ -0,0 +1,12 @@
+
+
+ ARP-4754A
+
+
+ RACK-Ontology
+
+
+
+
+
+
diff --git a/RACK-Ontology/ontology/ARP-4754A/AGENT_1.csv b/overlays/ARP-4754A/AGENT_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/ARP-4754A/AGENT_1.csv
rename to overlays/ARP-4754A/AGENT_1.csv
diff --git a/RACK-Ontology/ontology/ARP-4754A/AGENT_2.csv b/overlays/ARP-4754A/AGENT_2.csv
similarity index 100%
rename from RACK-Ontology/ontology/ARP-4754A/AGENT_2.csv
rename to overlays/ARP-4754A/AGENT_2.csv
diff --git a/RACK-Ontology/ontology/ARP-4754A/OBJECTIVE_1.csv b/overlays/ARP-4754A/OBJECTIVE_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/ARP-4754A/OBJECTIVE_1.csv
rename to overlays/ARP-4754A/OBJECTIVE_1.csv
diff --git a/RACK-Ontology/ontology/ARP-4754A/OBJECTIVE_2.csv b/overlays/ARP-4754A/OBJECTIVE_2.csv
similarity index 100%
rename from RACK-Ontology/ontology/ARP-4754A/OBJECTIVE_2.csv
rename to overlays/ARP-4754A/OBJECTIVE_2.csv
diff --git a/RACK-Ontology/ontology/ARP-4754A/SECTION_1.csv b/overlays/ARP-4754A/SECTION_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/ARP-4754A/SECTION_1.csv
rename to overlays/ARP-4754A/SECTION_1.csv
diff --git a/RACK-Ontology/ontology/ARP-4754A/SECTION_2.csv b/overlays/ARP-4754A/SECTION_2.csv
similarity index 100%
rename from RACK-Ontology/ontology/ARP-4754A/SECTION_2.csv
rename to overlays/ARP-4754A/SECTION_2.csv
diff --git a/RACK-Ontology/ontology/ARP-4754A/SPECIFICATION_1.csv b/overlays/ARP-4754A/SPECIFICATION_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/ARP-4754A/SPECIFICATION_1.csv
rename to overlays/ARP-4754A/SPECIFICATION_1.csv
diff --git a/RACK-Ontology/ontology/ARP-4754A/SPECIFICATION_2.csv b/overlays/ARP-4754A/SPECIFICATION_2.csv
similarity index 100%
rename from RACK-Ontology/ontology/ARP-4754A/SPECIFICATION_2.csv
rename to overlays/ARP-4754A/SPECIFICATION_2.csv
diff --git a/RACK-Ontology/ontology/ARP-4754A/import.yaml b/overlays/ARP-4754A/data.yaml
similarity index 100%
rename from RACK-Ontology/ontology/ARP-4754A/import.yaml
rename to overlays/ARP-4754A/data.yaml
diff --git a/overlays/ARP-4754A/manifest.yaml b/overlays/ARP-4754A/manifest.yaml
new file mode 100644
index 00000000..8a576bc4
--- /dev/null
+++ b/overlays/ARP-4754A/manifest.yaml
@@ -0,0 +1,9 @@
+name: ARP-4754A
+footprint:
+ model-graphs:
+ - http://rack001/model
+ data-graphs:
+ - http://rack001/arp-4754a
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- data: data.yaml
diff --git a/Boeing-Ontology/.project b/overlays/Boeing-Ontology/.project
similarity index 100%
rename from Boeing-Ontology/.project
rename to overlays/Boeing-Ontology/.project
diff --git a/Boeing-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl b/overlays/Boeing-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
similarity index 100%
rename from Boeing-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
rename to overlays/Boeing-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
diff --git a/Boeing-Ontology/ImplicitModel/SadlImplicitModel.sadl b/overlays/Boeing-Ontology/ImplicitModel/SadlImplicitModel.sadl
similarity index 100%
rename from Boeing-Ontology/ImplicitModel/SadlImplicitModel.sadl
rename to overlays/Boeing-Ontology/ImplicitModel/SadlImplicitModel.sadl
diff --git a/Boeing-Ontology/OwlModels/configuration.rdf b/overlays/Boeing-Ontology/OwlModels/configuration.rdf
similarity index 100%
rename from Boeing-Ontology/OwlModels/configuration.rdf
rename to overlays/Boeing-Ontology/OwlModels/configuration.rdf
diff --git a/Boeing-Ontology/OwlModels/import.yaml b/overlays/Boeing-Ontology/OwlModels/model.yaml
similarity index 100%
rename from Boeing-Ontology/OwlModels/import.yaml
rename to overlays/Boeing-Ontology/OwlModels/model.yaml
diff --git a/overlays/Boeing-Ontology/manifest.yaml b/overlays/Boeing-Ontology/manifest.yaml
new file mode 100644
index 00000000..4adb3cdc
--- /dev/null
+++ b/overlays/Boeing-Ontology/manifest.yaml
@@ -0,0 +1,7 @@
+name: Boeing-Ontology
+footprint:
+ model-graphs:
+ - http://rack001/model
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- model: OwlModels/model.yaml
diff --git a/Boeing-Ontology/ontology/Boeing.sadl b/overlays/Boeing-Ontology/ontology/Boeing.sadl
similarity index 92%
rename from Boeing-Ontology/ontology/Boeing.sadl
rename to overlays/Boeing-Ontology/ontology/Boeing.sadl
index a8324ab6..692083e1 100644
--- a/Boeing-Ontology/ontology/Boeing.sadl
+++ b/overlays/Boeing-Ontology/ontology/Boeing.sadl
@@ -13,6 +13,8 @@ import "http://arcos.rack/SOFTWARE".
import "http://arcos.rack/SYSTEM".
import "http://arcos.rack/TESTING".
+Procurement_Req (note "A Requirement identified in a procurement specification") is a type of REQUIREMENT.
+
PIDS_Req (note "A Requirement identified in the Prime Item Development Specification") is a type of REQUIREMENT.
CSID_Req (note "A Requirement identified in the Crew Systems Interface Document") is a type of REQUIREMENT.
@@ -23,7 +25,10 @@ SubDD_Req (note "A Requirement identified in the Subsystem Design Document") is
Rq:satisfies of SubDD_Req only has values of type SRS_Req.
SBVT_Test (note "A test identified in the Software Baseline Verification Tests") is a type of TEST.
+ verifies of SBVT_Test_Procedure only has values of type {SubDD_Req or SRS_Req or CSID_Req}.
verifies of SBVT_Test has at least 1 value.
+ // A new property unique to SBVT_Test: stimulates
+ stimulates of SBVT_Test has values of type Signal. //<--how come "only has values" doesn't work here?
SBVT_Result (note "A result identified for a SBVT_Test (Software Baseline Verification Tests)") is a type of TEST_RESULT.
confirms of SBVT_Result only has values of type SBVT_Test.
@@ -79,22 +84,22 @@ IDD_Doc is a type of DOCUMENT.
// subclass from core ontology related to SBVT and IDD
SBVT_Test_Procedure is a type of TEST_PROCEDURE.
content of SBVT_Test only has values of type SBVT_Test_Step.
- verifies of SBVT_Test_Procedure only has values of type {SubDD_Req or SRS_Req}.
- verifies of SBVT_Test_Procedure has at least 1 value.
SBVT_Test_Step is a type of TEST_STEP.
- stimulates of SBVT_Test_Step has values of type Signal. //<--how come "only has values" doesn't work here?
nextStep of SBVT_Test_Step only has values of type SBVT_Test_Step.
-IDD_Test is a type of TEST. // note "verifies" corresponds to "observes"
-// verifies of IDD_Test only has values of type Signal.
- observes of IDD_Test has values of type Signal. //<--how come "only has values" doesn't work here?
-
//SBVT_Test_Step can contain HMI test etc.
SBVT_Test_Log is a type of TEST_LOG.
content of SBVT_Test_Log only has values of type SBVT_Test_Record.
SBVT_Test_Record is a type of TEST_RECORD.
- logs of SBVT_Test_Record only has values of type SBVT_Test_Step.
+ testRecordSteps of SBVT_Test_Record only has values of type SBVT_Test_Step.
+ // targetVersion replaces systemUnderTestBuildVersion
+
+IDD_Test is a type of TEST. // note "verifies" corresponds to "observes"
+// verifies of IDD_Test only has values of type Signal.
+ // A new property unique to IDD_Test: observes
+ observes of IDD_Test has values of type Signal. //<--how come "only has values" doesn't work here?
+
IDD_Test_Result is a type of TEST_RESULT.
confirms of IDD_Test_Result only has values of type IDD_Test.
@@ -108,13 +113,9 @@ Test_Station is a type of AGENT.
SBVT_Test_Execution is a type of TEST_EXECUTION.
testProcedure of SBVT_Test_Execution only has values of type SBVT_Test_Procedure.
systemUnderTest describes SBVT_Test_Execution with values of type SYSTEM.
- systemUnderTestBuildVersion describes SBVT_Test_Execution with values of type BuildVersion. //added
- databaseVersion describes SBVT_Test_Execution with values of type Database.
- databaseVersion is a type of used.
-// softwareBuild describes SBVT_Test_Execution with values of type Executable.
-// softwareBuild is a type of used.
testStation of SBVT_Test_Execution has a single value of type Test_Station.
testStation is a type of wasAssociatedWith.
+
BuildVersion is a type of ENTITY.
system describes BuildVersion with a single value of type SYSTEM.
buildVersion describes BuildVersion with a single value of type Executable.
diff --git a/overlays/CAPEC/.project b/overlays/CAPEC/.project
new file mode 100644
index 00000000..5cac0049
--- /dev/null
+++ b/overlays/CAPEC/.project
@@ -0,0 +1,12 @@
+
+
+ CAPEC
+
+
+ RACK-Ontology
+
+
+
+
+
+
diff --git a/RACK-Ontology/ontology/CAPEC/CAPEC1.csv b/overlays/CAPEC/CAPEC1.csv
similarity index 100%
rename from RACK-Ontology/ontology/CAPEC/CAPEC1.csv
rename to overlays/CAPEC/CAPEC1.csv
diff --git a/RACK-Ontology/ontology/CAPEC/CAPEC2.csv b/overlays/CAPEC/CAPEC2.csv
similarity index 100%
rename from RACK-Ontology/ontology/CAPEC/CAPEC2.csv
rename to overlays/CAPEC/CAPEC2.csv
diff --git a/RACK-Ontology/ontology/CAPEC/import.yaml b/overlays/CAPEC/data.yaml
similarity index 100%
rename from RACK-Ontology/ontology/CAPEC/import.yaml
rename to overlays/CAPEC/data.yaml
diff --git a/overlays/CAPEC/manifest.yaml b/overlays/CAPEC/manifest.yaml
new file mode 100644
index 00000000..651ca5bd
--- /dev/null
+++ b/overlays/CAPEC/manifest.yaml
@@ -0,0 +1,9 @@
+name: CAPEC
+footprint:
+ model-graphs:
+ - http://rack001/model
+ data-graphs:
+ - http://rack001/capec
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- data: data.yaml
diff --git a/overlays/DO-178C/.project b/overlays/DO-178C/.project
new file mode 100644
index 00000000..56d5d3b6
--- /dev/null
+++ b/overlays/DO-178C/.project
@@ -0,0 +1,12 @@
+
+
+ DO-178C
+
+
+ RACK-Ontology
+
+
+
+
+
+
diff --git a/RACK-Ontology/ontology/DO-178C/AGENT_1.csv b/overlays/DO-178C/AGENT_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-178C/AGENT_1.csv
rename to overlays/DO-178C/AGENT_1.csv
diff --git a/RACK-Ontology/ontology/DO-178C/OBJECTIVE_1.csv b/overlays/DO-178C/OBJECTIVE_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-178C/OBJECTIVE_1.csv
rename to overlays/DO-178C/OBJECTIVE_1.csv
diff --git a/RACK-Ontology/ontology/DO-178C/OBJECTIVE_2.csv b/overlays/DO-178C/OBJECTIVE_2.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-178C/OBJECTIVE_2.csv
rename to overlays/DO-178C/OBJECTIVE_2.csv
diff --git a/RACK-Ontology/ontology/DO-178C/SECTION_1.csv b/overlays/DO-178C/SECTION_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-178C/SECTION_1.csv
rename to overlays/DO-178C/SECTION_1.csv
diff --git a/RACK-Ontology/ontology/DO-178C/SECTION_2.csv b/overlays/DO-178C/SECTION_2.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-178C/SECTION_2.csv
rename to overlays/DO-178C/SECTION_2.csv
diff --git a/RACK-Ontology/ontology/DO-178C/SPECIFICATION_1.csv b/overlays/DO-178C/SPECIFICATION_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-178C/SPECIFICATION_1.csv
rename to overlays/DO-178C/SPECIFICATION_1.csv
diff --git a/RACK-Ontology/ontology/DO-178C/SPECIFICATION_2.csv b/overlays/DO-178C/SPECIFICATION_2.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-178C/SPECIFICATION_2.csv
rename to overlays/DO-178C/SPECIFICATION_2.csv
diff --git a/RACK-Ontology/ontology/DO-178C/import.yaml b/overlays/DO-178C/data.yaml
similarity index 100%
rename from RACK-Ontology/ontology/DO-178C/import.yaml
rename to overlays/DO-178C/data.yaml
diff --git a/overlays/DO-178C/manifest.yaml b/overlays/DO-178C/manifest.yaml
new file mode 100644
index 00000000..3214266a
--- /dev/null
+++ b/overlays/DO-178C/manifest.yaml
@@ -0,0 +1,9 @@
+name: DO-178C
+footprint:
+ model-graphs:
+ - http://rack001/model
+ data-graphs:
+ - http://rack001/do-178c
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- data: data.yaml
diff --git a/overlays/DO-330/.project b/overlays/DO-330/.project
new file mode 100644
index 00000000..5f1fdc45
--- /dev/null
+++ b/overlays/DO-330/.project
@@ -0,0 +1,12 @@
+
+
+ DO-330
+
+
+ RACK-Ontology
+
+
+
+
+
+
diff --git a/RACK-Ontology/ontology/DO-330/AGENT_1.csv b/overlays/DO-330/AGENT_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-330/AGENT_1.csv
rename to overlays/DO-330/AGENT_1.csv
diff --git a/RACK-Ontology/ontology/DO-330/OBJECTIVE_1.csv b/overlays/DO-330/OBJECTIVE_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-330/OBJECTIVE_1.csv
rename to overlays/DO-330/OBJECTIVE_1.csv
diff --git a/RACK-Ontology/ontology/DO-330/OBJECTIVE_2.csv b/overlays/DO-330/OBJECTIVE_2.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-330/OBJECTIVE_2.csv
rename to overlays/DO-330/OBJECTIVE_2.csv
diff --git a/RACK-Ontology/ontology/DO-330/SECTION_1.csv b/overlays/DO-330/SECTION_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-330/SECTION_1.csv
rename to overlays/DO-330/SECTION_1.csv
diff --git a/RACK-Ontology/ontology/DO-330/SECTION_2.csv b/overlays/DO-330/SECTION_2.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-330/SECTION_2.csv
rename to overlays/DO-330/SECTION_2.csv
diff --git a/RACK-Ontology/ontology/DO-330/SPECIFICATION_1.csv b/overlays/DO-330/SPECIFICATION_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-330/SPECIFICATION_1.csv
rename to overlays/DO-330/SPECIFICATION_1.csv
diff --git a/RACK-Ontology/ontology/DO-330/SPECIFICATION_2.csv b/overlays/DO-330/SPECIFICATION_2.csv
similarity index 100%
rename from RACK-Ontology/ontology/DO-330/SPECIFICATION_2.csv
rename to overlays/DO-330/SPECIFICATION_2.csv
diff --git a/RACK-Ontology/ontology/DO-330/import.yaml b/overlays/DO-330/data.yaml
similarity index 100%
rename from RACK-Ontology/ontology/DO-330/import.yaml
rename to overlays/DO-330/data.yaml
diff --git a/overlays/DO-330/manifest.yaml b/overlays/DO-330/manifest.yaml
new file mode 100644
index 00000000..600d16b5
--- /dev/null
+++ b/overlays/DO-330/manifest.yaml
@@ -0,0 +1,9 @@
+name: DO-330
+footprint:
+ model-graphs:
+ - http://rack001/model
+ data-graphs:
+ - http://rack001/do-330
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- data: data.yaml
diff --git a/GE-Ontology/.project b/overlays/GE-Ontology/.project
similarity index 100%
rename from GE-Ontology/.project
rename to overlays/GE-Ontology/.project
diff --git a/GE-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl b/overlays/GE-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
similarity index 100%
rename from GE-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
rename to overlays/GE-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
diff --git a/GE-Ontology/ImplicitModel/SadlImplicitModel.sadl b/overlays/GE-Ontology/ImplicitModel/SadlImplicitModel.sadl
similarity index 100%
rename from GE-Ontology/ImplicitModel/SadlImplicitModel.sadl
rename to overlays/GE-Ontology/ImplicitModel/SadlImplicitModel.sadl
diff --git a/GE-Ontology/OwlModels/configuration.rdf b/overlays/GE-Ontology/OwlModels/configuration.rdf
similarity index 100%
rename from GE-Ontology/OwlModels/configuration.rdf
rename to overlays/GE-Ontology/OwlModels/configuration.rdf
diff --git a/GE-Ontology/OwlModels/import.yaml b/overlays/GE-Ontology/OwlModels/model.yaml
similarity index 100%
rename from GE-Ontology/OwlModels/import.yaml
rename to overlays/GE-Ontology/OwlModels/model.yaml
diff --git a/GE-Ontology/README.md b/overlays/GE-Ontology/README.md
similarity index 100%
rename from GE-Ontology/README.md
rename to overlays/GE-Ontology/README.md
diff --git a/overlays/GE-Ontology/manifest.yaml b/overlays/GE-Ontology/manifest.yaml
new file mode 100644
index 00000000..7193b1a0
--- /dev/null
+++ b/overlays/GE-Ontology/manifest.yaml
@@ -0,0 +1,7 @@
+name: GE-Ontology
+footprint:
+ model-graphs:
+ - http://rack001/model
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- model: OwlModels/model.yaml
diff --git a/GE-Ontology/ontology/CPS.sadl b/overlays/GE-Ontology/ontology/CPS.sadl
similarity index 100%
rename from GE-Ontology/ontology/CPS.sadl
rename to overlays/GE-Ontology/ontology/CPS.sadl
diff --git a/GE-Ontology/ontology/GE.sadl b/overlays/GE-Ontology/ontology/GE.sadl
similarity index 100%
rename from GE-Ontology/ontology/GE.sadl
rename to overlays/GE-Ontology/ontology/GE.sadl
diff --git a/GrammaTech-Ontology/.project b/overlays/GrammaTech-Ontology/.project
similarity index 100%
rename from GrammaTech-Ontology/.project
rename to overlays/GrammaTech-Ontology/.project
diff --git a/GrammaTech-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl b/overlays/GrammaTech-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
similarity index 100%
rename from GrammaTech-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
rename to overlays/GrammaTech-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
diff --git a/GrammaTech-Ontology/ImplicitModel/SadlImplicitModel.sadl b/overlays/GrammaTech-Ontology/ImplicitModel/SadlImplicitModel.sadl
similarity index 100%
rename from GrammaTech-Ontology/ImplicitModel/SadlImplicitModel.sadl
rename to overlays/GrammaTech-Ontology/ImplicitModel/SadlImplicitModel.sadl
diff --git a/GrammaTech-Ontology/Mapping.md b/overlays/GrammaTech-Ontology/Mapping.md
similarity index 100%
rename from GrammaTech-Ontology/Mapping.md
rename to overlays/GrammaTech-Ontology/Mapping.md
diff --git a/GrammaTech-Ontology/OwlModels/configuration.rdf b/overlays/GrammaTech-Ontology/OwlModels/configuration.rdf
similarity index 100%
rename from GrammaTech-Ontology/OwlModels/configuration.rdf
rename to overlays/GrammaTech-Ontology/OwlModels/configuration.rdf
diff --git a/GrammaTech-Ontology/OwlModels/import.yaml b/overlays/GrammaTech-Ontology/OwlModels/model.yaml
similarity index 100%
rename from GrammaTech-Ontology/OwlModels/import.yaml
rename to overlays/GrammaTech-Ontology/OwlModels/model.yaml
diff --git a/overlays/GrammaTech-Ontology/manifest.yaml b/overlays/GrammaTech-Ontology/manifest.yaml
new file mode 100644
index 00000000..8710827d
--- /dev/null
+++ b/overlays/GrammaTech-Ontology/manifest.yaml
@@ -0,0 +1,7 @@
+name: GrammaTech-Ontology
+footprint:
+ model-graphs:
+ - http://rack001/model
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- model: OwlModels/model.yaml
diff --git a/GrammaTech-Ontology/ontology/GrammaTech.sadl b/overlays/GrammaTech-Ontology/ontology/GrammaTech.sadl
similarity index 100%
rename from GrammaTech-Ontology/ontology/GrammaTech.sadl
rename to overlays/GrammaTech-Ontology/ontology/GrammaTech.sadl
diff --git a/LM-Ontology/.project b/overlays/LM-Ontology/.project
similarity index 100%
rename from LM-Ontology/.project
rename to overlays/LM-Ontology/.project
diff --git a/LM-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl b/overlays/LM-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
similarity index 100%
rename from LM-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
rename to overlays/LM-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
diff --git a/LM-Ontology/ImplicitModel/SadlImplicitModel.sadl b/overlays/LM-Ontology/ImplicitModel/SadlImplicitModel.sadl
similarity index 100%
rename from LM-Ontology/ImplicitModel/SadlImplicitModel.sadl
rename to overlays/LM-Ontology/ImplicitModel/SadlImplicitModel.sadl
diff --git a/LM-Ontology/OwlModels/configuration.rdf b/overlays/LM-Ontology/OwlModels/configuration.rdf
similarity index 100%
rename from LM-Ontology/OwlModels/configuration.rdf
rename to overlays/LM-Ontology/OwlModels/configuration.rdf
diff --git a/LM-Ontology/OwlModels/import.yaml b/overlays/LM-Ontology/OwlModels/model.yaml
similarity index 100%
rename from LM-Ontology/OwlModels/import.yaml
rename to overlays/LM-Ontology/OwlModels/model.yaml
diff --git a/overlays/LM-Ontology/manifest.yaml b/overlays/LM-Ontology/manifest.yaml
new file mode 100644
index 00000000..287ed527
--- /dev/null
+++ b/overlays/LM-Ontology/manifest.yaml
@@ -0,0 +1,7 @@
+name: LM-Ontology
+footprint:
+ model-graphs:
+ - http://rack001/model
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- model: OwlModels/model.yaml
diff --git a/LM-Ontology/ontology/LM.sadl b/overlays/LM-Ontology/ontology/LM.sadl
similarity index 100%
rename from LM-Ontology/ontology/LM.sadl
rename to overlays/LM-Ontology/ontology/LM.sadl
diff --git a/Provenance-Example/.project b/overlays/MIL-STD-881D/.project
similarity index 92%
rename from Provenance-Example/.project
rename to overlays/MIL-STD-881D/.project
index b665856d..d0ae3039 100644
--- a/Provenance-Example/.project
+++ b/overlays/MIL-STD-881D/.project
@@ -1,6 +1,6 @@
- Provenance-Example
+ MIL-STD-881DRACK-Ontology
diff --git a/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxA.sadl b/overlays/MIL-STD-881D/MIL-STD-881D-AppxA.sadl
similarity index 100%
rename from RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxA.sadl
rename to overlays/MIL-STD-881D/MIL-STD-881D-AppxA.sadl
diff --git a/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxB.sadl b/overlays/MIL-STD-881D/MIL-STD-881D-AppxB.sadl
similarity index 100%
rename from RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxB.sadl
rename to overlays/MIL-STD-881D/MIL-STD-881D-AppxB.sadl
diff --git a/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxC.sadl b/overlays/MIL-STD-881D/MIL-STD-881D-AppxC.sadl
similarity index 100%
rename from RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxC.sadl
rename to overlays/MIL-STD-881D/MIL-STD-881D-AppxC.sadl
diff --git a/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxD.sadl b/overlays/MIL-STD-881D/MIL-STD-881D-AppxD.sadl
similarity index 100%
rename from RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D-AppxD.sadl
rename to overlays/MIL-STD-881D/MIL-STD-881D-AppxD.sadl
diff --git a/RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D.sadl b/overlays/MIL-STD-881D/MIL-STD-881D.sadl
similarity index 100%
rename from RACK-Ontology/ontology/MIL-STD-881D/MIL-STD-881D.sadl
rename to overlays/MIL-STD-881D/MIL-STD-881D.sadl
diff --git a/overlays/MIL-STD-881D/OwlModels/model.yaml b/overlays/MIL-STD-881D/OwlModels/model.yaml
new file mode 100644
index 00000000..56e23bc8
--- /dev/null
+++ b/overlays/MIL-STD-881D/OwlModels/model.yaml
@@ -0,0 +1,6 @@
+files:
+ - MIL-STD-881D.owl
+ - MIL-STD-881D-AppxA.owl
+ - MIL-STD-881D-AppxB.owl
+ - MIL-STD-881D-AppxC.owl
+ - MIL-STD-881D-AppxD.owl
diff --git a/overlays/MIL-STD-881D/manifest.yaml b/overlays/MIL-STD-881D/manifest.yaml
new file mode 100644
index 00000000..e467bd81
--- /dev/null
+++ b/overlays/MIL-STD-881D/manifest.yaml
@@ -0,0 +1,7 @@
+name: MIL-STD-881D
+footprint:
+ model-graphs:
+ - http://rack001/model
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- model: OwlModels/model.yaml
diff --git a/overlays/MITRE-CWE/.project b/overlays/MITRE-CWE/.project
new file mode 100644
index 00000000..3c2c1475
--- /dev/null
+++ b/overlays/MITRE-CWE/.project
@@ -0,0 +1,18 @@
+
+
+ MITRE-CWE
+
+
+ RACK-Ontology
+
+
+
+ org.eclipse.xtext.ui.shared.xtextBuilder
+
+
+
+
+
+ org.eclipse.xtext.ui.shared.xtextNature
+
+
diff --git a/RACK-Ontology/ontology/MITRE-CWE/CAPEC.csv b/overlays/MITRE-CWE/CAPEC.csv
similarity index 100%
rename from RACK-Ontology/ontology/MITRE-CWE/CAPEC.csv
rename to overlays/MITRE-CWE/CAPEC.csv
diff --git a/RACK-Ontology/ontology/MITRE-CWE/CAPEC_CWE.csv b/overlays/MITRE-CWE/CAPEC_CWE.csv
similarity index 100%
rename from RACK-Ontology/ontology/MITRE-CWE/CAPEC_CWE.csv
rename to overlays/MITRE-CWE/CAPEC_CWE.csv
diff --git a/RACK-Ontology/ontology/MITRE-CWE/CWE_EFFECTIVENESS.csv b/overlays/MITRE-CWE/CWE_EFFECTIVENESS.csv
similarity index 100%
rename from RACK-Ontology/ontology/MITRE-CWE/CWE_EFFECTIVENESS.csv
rename to overlays/MITRE-CWE/CWE_EFFECTIVENESS.csv
diff --git a/RACK-Ontology/ontology/MITRE-CWE/CWE_METHOD.csv b/overlays/MITRE-CWE/CWE_METHOD.csv
similarity index 100%
rename from RACK-Ontology/ontology/MITRE-CWE/CWE_METHOD.csv
rename to overlays/MITRE-CWE/CWE_METHOD.csv
diff --git a/RACK-Ontology/ontology/MITRE-CWE/CWE_TOOL_EFFECTIVENESS.csv b/overlays/MITRE-CWE/CWE_TOOL_EFFECTIVENESS.csv
similarity index 100%
rename from RACK-Ontology/ontology/MITRE-CWE/CWE_TOOL_EFFECTIVENESS.csv
rename to overlays/MITRE-CWE/CWE_TOOL_EFFECTIVENESS.csv
diff --git a/RACK-Ontology/ontology/MITRE-CWE/MITRE-CWE.sadl b/overlays/MITRE-CWE/MITRE-CWE.sadl
similarity index 100%
rename from RACK-Ontology/ontology/MITRE-CWE/MITRE-CWE.sadl
rename to overlays/MITRE-CWE/MITRE-CWE.sadl
diff --git a/RACK-Ontology/ontology/MITRE-CWE/MITRE_CWE.csv b/overlays/MITRE-CWE/MITRE_CWE.csv
similarity index 100%
rename from RACK-Ontology/ontology/MITRE-CWE/MITRE_CWE.csv
rename to overlays/MITRE-CWE/MITRE_CWE.csv
diff --git a/overlays/MITRE-CWE/OwlModels/model.yaml b/overlays/MITRE-CWE/OwlModels/model.yaml
new file mode 100644
index 00000000..9f545b8a
--- /dev/null
+++ b/overlays/MITRE-CWE/OwlModels/model.yaml
@@ -0,0 +1,2 @@
+files:
+- MITRE-CWE.owl
\ No newline at end of file
diff --git a/RACK-Ontology/ontology/MITRE-CWE/import.yaml b/overlays/MITRE-CWE/data.yaml
similarity index 100%
rename from RACK-Ontology/ontology/MITRE-CWE/import.yaml
rename to overlays/MITRE-CWE/data.yaml
diff --git a/RACK-Ontology/ontology/MITRE-CWE/gen-capec.py b/overlays/MITRE-CWE/gen-capec.py
similarity index 100%
rename from RACK-Ontology/ontology/MITRE-CWE/gen-capec.py
rename to overlays/MITRE-CWE/gen-capec.py
diff --git a/overlays/MITRE-CWE/manifest.yaml b/overlays/MITRE-CWE/manifest.yaml
new file mode 100644
index 00000000..e8bc6657
--- /dev/null
+++ b/overlays/MITRE-CWE/manifest.yaml
@@ -0,0 +1,11 @@
+name: MITRE-CWE
+footprint:
+ model-graphs:
+ - http://rack001/model
+ data-graphs:
+ - http://rack001/mitre-cwe
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- model: OwlModels/model.yaml
+- nodegroups: nodegroups
+- data: data.yaml
diff --git a/nodegroups/arcos.cwe/CWE effectiveness association.json b/overlays/MITRE-CWE/nodegroups/CWE effectiveness association.json
similarity index 100%
rename from nodegroups/arcos.cwe/CWE effectiveness association.json
rename to overlays/MITRE-CWE/nodegroups/CWE effectiveness association.json
diff --git a/nodegroups/arcos.cwe/CWE effectivenesses.json b/overlays/MITRE-CWE/nodegroups/CWE effectivenesses.json
similarity index 100%
rename from nodegroups/arcos.cwe/CWE effectivenesses.json
rename to overlays/MITRE-CWE/nodegroups/CWE effectivenesses.json
diff --git a/nodegroups/arcos.cwe/CWE ingestion.json b/overlays/MITRE-CWE/nodegroups/CWE ingestion.json
similarity index 100%
rename from nodegroups/arcos.cwe/CWE ingestion.json
rename to overlays/MITRE-CWE/nodegroups/CWE ingestion.json
diff --git a/nodegroups/arcos.cwe/CWE methods.json b/overlays/MITRE-CWE/nodegroups/CWE methods.json
similarity index 100%
rename from nodegroups/arcos.cwe/CWE methods.json
rename to overlays/MITRE-CWE/nodegroups/CWE methods.json
diff --git a/nodegroups/arcos.cwe/store_data.csv b/overlays/MITRE-CWE/nodegroups/store_data.csv
similarity index 100%
rename from nodegroups/arcos.cwe/store_data.csv
rename to overlays/MITRE-CWE/nodegroups/store_data.csv
diff --git a/overlays/NIST-800-53/.project b/overlays/NIST-800-53/.project
new file mode 100644
index 00000000..9cd1aae5
--- /dev/null
+++ b/overlays/NIST-800-53/.project
@@ -0,0 +1,12 @@
+
+
+ NIST-800-53
+
+
+ RACK-Ontology
+
+
+
+
+
+
diff --git a/RACK-Ontology/ontology/NIST-800-53/NIST-800-53_1.csv b/overlays/NIST-800-53/NIST-800-53_1.csv
similarity index 100%
rename from RACK-Ontology/ontology/NIST-800-53/NIST-800-53_1.csv
rename to overlays/NIST-800-53/NIST-800-53_1.csv
diff --git a/RACK-Ontology/ontology/NIST-800-53/NIST-800-53_2.csv b/overlays/NIST-800-53/NIST-800-53_2.csv
similarity index 100%
rename from RACK-Ontology/ontology/NIST-800-53/NIST-800-53_2.csv
rename to overlays/NIST-800-53/NIST-800-53_2.csv
diff --git a/RACK-Ontology/ontology/NIST-800-53/import.yaml b/overlays/NIST-800-53/data.yaml
similarity index 100%
rename from RACK-Ontology/ontology/NIST-800-53/import.yaml
rename to overlays/NIST-800-53/data.yaml
diff --git a/overlays/NIST-800-53/manifest.yaml b/overlays/NIST-800-53/manifest.yaml
new file mode 100644
index 00000000..0021a15e
--- /dev/null
+++ b/overlays/NIST-800-53/manifest.yaml
@@ -0,0 +1,9 @@
+name: NIST-800-53
+footprint:
+ model-graphs:
+ - http://rack001/model
+ data-graphs:
+ - http://rack001/nist-800-53
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- data: data.yaml
diff --git a/RTX-Ontology/.project b/overlays/RTX-Ontology/.project
similarity index 100%
rename from RTX-Ontology/.project
rename to overlays/RTX-Ontology/.project
diff --git a/Provenance-Example/ImplicitModel/SadlBuiltinFunctions.sadl b/overlays/RTX-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
similarity index 100%
rename from Provenance-Example/ImplicitModel/SadlBuiltinFunctions.sadl
rename to overlays/RTX-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
diff --git a/Provenance-Example/ImplicitModel/SadlImplicitModel.sadl b/overlays/RTX-Ontology/ImplicitModel/SadlImplicitModel.sadl
similarity index 100%
rename from Provenance-Example/ImplicitModel/SadlImplicitModel.sadl
rename to overlays/RTX-Ontology/ImplicitModel/SadlImplicitModel.sadl
diff --git a/RTX-Ontology/OwlModels/configuration.rdf b/overlays/RTX-Ontology/OwlModels/configuration.rdf
similarity index 100%
rename from RTX-Ontology/OwlModels/configuration.rdf
rename to overlays/RTX-Ontology/OwlModels/configuration.rdf
diff --git a/RTX-Ontology/OwlModels/import.yaml b/overlays/RTX-Ontology/OwlModels/model.yaml
similarity index 100%
rename from RTX-Ontology/OwlModels/import.yaml
rename to overlays/RTX-Ontology/OwlModels/model.yaml
diff --git a/overlays/RTX-Ontology/manifest.yaml b/overlays/RTX-Ontology/manifest.yaml
new file mode 100644
index 00000000..3f6264e4
--- /dev/null
+++ b/overlays/RTX-Ontology/manifest.yaml
@@ -0,0 +1,7 @@
+name: RTX-Ontology
+footprint:
+ model-graphs:
+ - http://rack001/model
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- model: OwlModels/model.yaml
diff --git a/RTX-Ontology/ontology/RTX.sadl b/overlays/RTX-Ontology/ontology/RTX.sadl
similarity index 100%
rename from RTX-Ontology/ontology/RTX.sadl
rename to overlays/RTX-Ontology/ontology/RTX.sadl
diff --git a/SRI-Ontology/.project b/overlays/SRI-Ontology/.project
similarity index 100%
rename from SRI-Ontology/.project
rename to overlays/SRI-Ontology/.project
diff --git a/RTX-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl b/overlays/SRI-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
similarity index 100%
rename from RTX-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
rename to overlays/SRI-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
diff --git a/RTX-Ontology/ImplicitModel/SadlImplicitModel.sadl b/overlays/SRI-Ontology/ImplicitModel/SadlImplicitModel.sadl
similarity index 100%
rename from RTX-Ontology/ImplicitModel/SadlImplicitModel.sadl
rename to overlays/SRI-Ontology/ImplicitModel/SadlImplicitModel.sadl
diff --git a/Provenance-Example/OwlModels/configuration.rdf b/overlays/SRI-Ontology/OwlModels/configuration.rdf
similarity index 100%
rename from Provenance-Example/OwlModels/configuration.rdf
rename to overlays/SRI-Ontology/OwlModels/configuration.rdf
diff --git a/SRI-Ontology/OwlModels/import.yaml b/overlays/SRI-Ontology/OwlModels/model.yaml
similarity index 100%
rename from SRI-Ontology/OwlModels/import.yaml
rename to overlays/SRI-Ontology/OwlModels/model.yaml
diff --git a/overlays/SRI-Ontology/manifest.yaml b/overlays/SRI-Ontology/manifest.yaml
new file mode 100644
index 00000000..d4c0c1be
--- /dev/null
+++ b/overlays/SRI-Ontology/manifest.yaml
@@ -0,0 +1,8 @@
+name: SRI-Ontology
+footprint:
+ model-graphs:
+ - http://rack001/model
+steps:
+- manifest: ../Boeing-Ontology/manifest.yaml
+- manifest: ../../RACK-Ontology/manifest.yaml
+- model: OwlModels/model.yaml
diff --git a/SRI-Ontology/ontology/SRI.sadl b/overlays/SRI-Ontology/ontology/SRI.sadl
similarity index 100%
rename from SRI-Ontology/ontology/SRI.sadl
rename to overlays/SRI-Ontology/ontology/SRI.sadl
diff --git a/STR-Ontology/.project b/overlays/STR-Ontology/.project
similarity index 100%
rename from STR-Ontology/.project
rename to overlays/STR-Ontology/.project
diff --git a/SRI-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl b/overlays/STR-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
similarity index 100%
rename from SRI-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
rename to overlays/STR-Ontology/ImplicitModel/SadlBuiltinFunctions.sadl
diff --git a/SRI-Ontology/ImplicitModel/SadlImplicitModel.sadl b/overlays/STR-Ontology/ImplicitModel/SadlImplicitModel.sadl
similarity index 100%
rename from SRI-Ontology/ImplicitModel/SadlImplicitModel.sadl
rename to overlays/STR-Ontology/ImplicitModel/SadlImplicitModel.sadl
diff --git a/STR-Ontology/Mapping.md b/overlays/STR-Ontology/Mapping.md
similarity index 100%
rename from STR-Ontology/Mapping.md
rename to overlays/STR-Ontology/Mapping.md
diff --git a/STR-Ontology/OwlModels/configuration.rdf b/overlays/STR-Ontology/OwlModels/configuration.rdf
similarity index 100%
rename from STR-Ontology/OwlModels/configuration.rdf
rename to overlays/STR-Ontology/OwlModels/configuration.rdf
diff --git a/STR-Ontology/OwlModels/import.yaml b/overlays/STR-Ontology/OwlModels/model.yaml
similarity index 100%
rename from STR-Ontology/OwlModels/import.yaml
rename to overlays/STR-Ontology/OwlModels/model.yaml
diff --git a/overlays/STR-Ontology/manifest.yaml b/overlays/STR-Ontology/manifest.yaml
new file mode 100644
index 00000000..26a5c895
--- /dev/null
+++ b/overlays/STR-Ontology/manifest.yaml
@@ -0,0 +1,7 @@
+name: STR-Ontology
+footprint:
+ model-graphs:
+ - http://rack001/model
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- model: OwlModels/model.yaml
diff --git a/STR-Ontology/ontology/STR.sadl b/overlays/STR-Ontology/ontology/STR.sadl
similarity index 100%
rename from STR-Ontology/ontology/STR.sadl
rename to overlays/STR-Ontology/ontology/STR.sadl
diff --git a/overlays/arcos/manifest.yaml b/overlays/arcos/manifest.yaml
new file mode 100644
index 00000000..9e07dade
--- /dev/null
+++ b/overlays/arcos/manifest.yaml
@@ -0,0 +1,20 @@
+name: 'ARCOS ontology'
+
+footprint:
+ model-graphs:
+ - http://rack001/model
+ data-graphs:
+ - http://rack001/nist-800-53
+ - http://rack001/mitre-cwe
+
+steps:
+ - manifest: ../../RACK-Ontology/manifest.yaml
+ - manifest: ../Boeing-Ontology/manifest.yaml
+ - manifest: ../GrammaTech-Ontology/manifest.yaml
+ - manifest: ../LM-Ontology/manifest.yaml
+ - manifest: ../SRI-Ontology/manifest.yaml
+ - manifest: ../STR-Ontology/manifest.yaml
+ - manifest: ../RTX-Ontology/manifest.yaml
+ - manifest: ../NIST-800-53/manifest.yaml
+ - manifest: ../MITRE-CWE/manifest.yaml
+ - manifest: ../claims/manifest.yaml
diff --git a/overlays/claims/.project b/overlays/claims/.project
new file mode 100644
index 00000000..558be978
--- /dev/null
+++ b/overlays/claims/.project
@@ -0,0 +1,12 @@
+
+
+ claims
+
+
+ RACK-Ontology
+
+
+
+
+
+
diff --git a/RACK-Ontology/ontology/claims/CONCERN_TYPES.csv b/overlays/claims/CONCERN_TYPES.csv
similarity index 100%
rename from RACK-Ontology/ontology/claims/CONCERN_TYPES.csv
rename to overlays/claims/CONCERN_TYPES.csv
diff --git a/RACK-Ontology/ontology/claims/PROPERTY_TYPES.csv b/overlays/claims/PROPERTY_TYPES.csv
similarity index 100%
rename from RACK-Ontology/ontology/claims/PROPERTY_TYPES.csv
rename to overlays/claims/PROPERTY_TYPES.csv
diff --git a/RACK-Ontology/ontology/claims/THEORIES.csv b/overlays/claims/THEORIES.csv
similarity index 100%
rename from RACK-Ontology/ontology/claims/THEORIES.csv
rename to overlays/claims/THEORIES.csv
diff --git a/RACK-Ontology/ontology/claims/import.yaml b/overlays/claims/data.yaml
similarity index 100%
rename from RACK-Ontology/ontology/claims/import.yaml
rename to overlays/claims/data.yaml
diff --git a/overlays/claims/manifest.yaml b/overlays/claims/manifest.yaml
new file mode 100644
index 00000000..f176ccd5
--- /dev/null
+++ b/overlays/claims/manifest.yaml
@@ -0,0 +1,9 @@
+name: claims
+footprint:
+ model-graphs:
+ - http://rack001/model
+ data-graphs:
+ - http://rack001/model
+steps:
+- manifest: ../../RACK-Ontology/manifest.yaml
+- data: data.yaml
diff --git a/rack-box/http/user-data b/rack-box/http/user-data
index 234b8fbf..8be6bb5d 100644
--- a/rack-box/http/user-data
+++ b/rack-box/http/user-data
@@ -13,10 +13,6 @@ autoinstall:
storage:
layout:
name: direct
- apt:
- sources:
- swi-prolog:
- source: "ppa:swi-prolog/stable"
ssh:
install-server: true
packages:
diff --git a/rack-box/scripts/install.sh b/rack-box/scripts/install.sh
index 007d9673..e6db765e 100644
--- a/rack-box/scripts/install.sh
+++ b/rack-box/scripts/install.sh
@@ -14,8 +14,6 @@ apt-get update -yqq
apt-get install -yqq ca-certificates software-properties-common
cp GE_External_Root_CA_2_1.crt /usr/local/share/ca-certificates
update-ca-certificates
-add-apt-repository -yu ppa:swi-prolog/stable
-apt-get update -yqq
# If you change packages here, change them in rack-box/http/user-data too
@@ -152,7 +150,7 @@ sed -e 's/"30000"/"300000"/' -i /etc/fuseki/config.ttl
# Create the RACK dataset
-curl -Ss -d 'dbName=RACK' -d 'dbType=tdb' 'http://localhost:3030/$/datasets'
+curl -Ss -d 'dbName=RACK' -d 'dbType=tdb2' 'http://localhost:3030/$/datasets'
# Configure the SemTK services and webapps
diff --git a/rack-ui/config/config-default.yml b/rack-ui/config/config-default.yml
new file mode 100644
index 00000000..b607a16b
--- /dev/null
+++ b/rack-ui/config/config-default.yml
@@ -0,0 +1,5 @@
+# RACK UI default configuration
+# Note: if config/config-override.yml is present, each of its entries will override the corresponding entry below
+
+# text to display as warning banner on load page (if empty string, no banner will appear)
+load-warning: ''
\ No newline at end of file
diff --git a/rack-ui/config/config.yml b/rack-ui/config/config.yml
deleted file mode 100644
index a84ce78e..00000000
--- a/rack-ui/config/config.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-# text to display as warning banner on load page (if empty string, no banner will appear)
-load-warning: ''
-#load-warning: 'Caution! Do not upload sensitive data'
\ No newline at end of file
diff --git a/rack-ui/pages/helper.py b/rack-ui/pages/helper.py
index 7e3d3281..72215a7a 100644
--- a/rack-ui/pages/helper.py
+++ b/rack-ui/pages/helper.py
@@ -1,6 +1,7 @@
""" Helper functions """
+import yaml
import tempfile
import traceback
import dash
@@ -13,6 +14,21 @@
# configuration
SPARQLGRAPH_BASE_URL = "http://localhost:8080"
+CONFIG_FILE_DEFAULT = "config/config-default.yml"
+CONFIG_FILE_OVERRIDE = "config/config-override.yml"
+
+def get_config(key) -> str:
+ """ Load default config, override it with custom config if present """
+ # TODO read config once, store for subsequent use
+ with open(CONFIG_FILE_DEFAULT) as f:
+ config_obj = yaml.safe_load(f)
+ try:
+ with open(CONFIG_FILE_OVERRIDE) as f:
+ config_custom = yaml.safe_load(f)
+ config_obj.update(config_custom) # override
+ except FileNotFoundError:
+ pass
+ return config_obj.get(key)
def get_temp_dir() -> str:
""" Get a temp dir """
diff --git a/rack-ui/pages/load.py b/rack-ui/pages/load.py
index 56a1683f..3fd777d6 100644
--- a/rack-ui/pages/load.py
+++ b/rack-ui/pages/load.py
@@ -1,6 +1,5 @@
""" Content for the "load data" page """
-import yaml
import time
import io
import base64
@@ -21,8 +20,7 @@
# get text for warning banner
def get_warning_banner_str() -> str:
- config_obj = yaml.safe_load(open("config/config.yml"))
- return config_obj.get('load-warning')
+ return get_config('load-warning')
# display strings
CLEAR_BEFORE_LOADING_STR = "Clear before loading"
@@ -79,7 +77,7 @@ def get_warning_banner_str() -> str:
# page elements
layout = html.Div([
html.H2("Load data"),
- dcc.Markdown("_Load data into RACK_"),
+ dcc.Markdown("_Load a data ingestion package ([sample here](https://github.com/ge-high-assurance/RACK/releases/latest/download/turnstile-ingestion-package.zip)) into RACK_"),
html.Div(dcc.Markdown(get_warning_banner_str()), className="warningbanner"),
dbc.Row([
dbc.Col(dcc.Upload(html.Button(id="select-button", children="Select ingestion package"), id='select-button-upload', accept=".zip", multiple=False), width="auto") # button to show upload dialog to pick ingestion package
@@ -208,8 +206,8 @@ def run_ingest(load_button_clicks, status_filepath, zip_filepath, load_options):
last_loaded_graphs = manifest.getModelgraphsFootprint() + manifest.getDatagraphsFootprint()
# optimize triple store
- #if manifest.getNeedsOptimization():
- # rack.invoke_optimization(None)
+ if manifest.getNeedsOptimization():
+ rack.invoke_optimization(None)
time.sleep(3)
except Exception as e: