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 @@ + + + + + + +RACK + + +cluster_TESTING + + + + +THING + +THING + +identifier::string + +title::string + +description::string + + + +ACTIVITY + +ACTIVITY + +startedAtTime::dateTime + +endedAtTime::dateTime + + + +THING->ACTIVITY + + +dataInsertedBy + + + + +ENTITY + +ENTITY + +generatedAtTime::dateTime + +invalidatedAtTime::dateTime + +entityURL::string + + + +THING->ENTITY + + + + + +AGENT + +AGENT + + + +THING->AGENT + + + + + +ACTIVITY->ACTIVITY + + +wasInformedBy + + + + +ACTIVITY->ENTITY + + +goal + + + + +ACTIVITY->ENTITY + + +used + + + + +ACTIVITY->AGENT + + +wasAssociatedWith + + + + +ENTITY->ACTIVITY + + +wasGeneratedBy + + + + +ENTITY->ENTITY + + +wasDerivedFrom + + + + +ENTITY->ENTITY + + +wasRevisionOf + + + + +ENTITY->ENTITY + + +wasImpactedBy + + + + +ENTITY->AGENT + + +wasAttributedTo + + + + +COLLECTION + +COLLECTION + + + +ENTITY->COLLECTION + + + + + +AGENT->AGENT + + +actedOnBehalfOf + + + + +COLLECTION->ENTITY + + +content + + + + +TEST + +TEST +:: ENTITY + + + +TEST->ENTITY + + +verifies + + + + +TEST_DEVELOPMENT + + +TEST_DEVELOPMENT +:: ACTIVITY + + + +TEST->TEST_DEVELOPMENT + + +wasGeneratedBy + + + + +TEST_PROCEDURE + +TEST_PROCEDURE +:: COLLECTION + + + +TEST_STEP + +TEST_STEP +:: ENTITY + + + +TEST_PROCEDURE->TEST_STEP + + +independentTest + + + + +TEST_STEP->TEST + + +thisStep + + + + +TEST_STEP->TEST_STEP + + +nextStep [*] + + + + +TEST_STATUS + +TEST_STATUS + + + +tsts + +Passed + +Failed + +Indeterminate + + + +TEST_STATUS->tsts + + + + + +TEST_LOG + +TEST_LOG +:: COLLECTION + + + +TEST_RECORD + +TEST_RECORD +:: ENTITY + + + +TEST_LOG->TEST_RECORD + + +content + + + + +TEST_RECORD->ENTITY + + +testConfiguration + + + + +TEST_RECORD->TEST_PROCEDURE + + +testRecordProcedure + + + + +TEST_RECORD->TEST_STEP + + +testRecordSteps + + + + +FILE + +FILE + + + +TEST_RECORD->FILE + + +targetPackage + + + + +TEST_RECORD->FILE + + +testPackage + + + + +string + +string + + + +TEST_RECORD->string + + +targetVersion + + + + +TEST_RECORD->string + + +testVersion + + + + +TEST_RESULT + +TEST_RESULT +:: ENTITY + + + +TEST_RESULT->TEST + + +confirms + + + + +TEST_RESULT->TEST_STATUS + + +result + + + + +TEST_EXECUTION + + +TEST_EXECUTION +:: ACTIVITY + + + +TEST_RESULT->TEST_EXECUTION + + +wasGeneratedBy + + + + +TEST_EXECUTION->TEST_PROCEDURE + + +testProcedure + + + + +TEST_EXECUTION->TEST_LOG + + +testLog + + + + +TEST_ANNOTATION + +TEST_ANNOTATION +:: ENTITY + + + +TEST_ANNOTATION->TEST_RESULT + + +annotatedResult + + + + +TstAnnotations + +IgnoredFailureOOB + + + +TEST_ANNOTATION->TstAnnotations + + +annotatedValue + + + + +REQUIREMENT + +REQUIREMENT +:: ENTITY + + + +REQUIREMENT->ENTITY + + +governs + + + + +REQUIREMENT->ENTITY + + +satisfies + + + + +REQUIREMENT->ENTITY + + +mitigates + + + + +REQUIREMENT_DEVELOPMENT + + +REQUIREMENT_DEVELOPMENT +:: ACTIVITY + + + +REQUIREMENT->REQUIREMENT_DEVELOPMENT + + +wasGeneratedBy + + + + +REQUIREMENT_DEVELOPMENT->ENTITY + + +referenced + + + + +REQUIREMENT_DEVELOPMENT->ENTITY + + +governedBy + + + + +DATA_DICTIONARY_TERM + +DATA_DICTIONARY_TERM +:: ENTITY + + + +DATA_DICTIONARY_TERM->ENTITY + + +providedBy + + + + +DATA_DICTIONARY_TERM->ENTITY + + +consumedBy + + + + +DOCUMENT + +DOCUMENT +:: COLLECTION + + + +DOCUMENT->ENTITY + + +references + + + + +DOCUMENT->AGENT + + +issuingOrganization + + + + +DOCUMENT->AGENT + + +approvalAuthority + + + + +DOC_STATUS + +DOC_STATUS + + + +DOCUMENT->DOC_STATUS + + +status + + + + +dsts + +In_Development + +Released + +Withdrawn + + + +DOC_STATUS->dsts + + + + + +DESCRIPTION + +DESCRIPTION + + + +DESCRIPTION->DOCUMENT + + + + + +PLAN + +PLAN + + + +PLAN->DOCUMENT + + + + + +PROCEDURE + +PROCEDURE + + + +PROCEDURE->DOCUMENT + + + + + +REPORT + +REPORT + + + +REPORT->DOCUMENT + + + + + +REQUEST + +REQUEST + + + +REQUEST->DOCUMENT + + + + + +SPECIFICATION + +SPECIFICATION + + + +SPECIFICATION->DOCUMENT + + + + + +SECTION + +SECTION +:: COLLECTION + + + +SWCOMPONENT + +SWCOMPONENT +:: ENTITY + + + +SWCOMPONENT_TYPE + +SWCOMPONENT_TYPE +:: THING + + + +SWCOMPONENT->SWCOMPONENT_TYPE + + +componentType + + + + +SYSTEM + +SYSTEM +:: ENTITY + + + +SYSTEM->SYSTEM + + +partOf + + + + +FUNCTION + +FUNCTION +:: ENTITY + + + +SYSTEM->FUNCTION + + +provides + + + + +SYSTEM->FUNCTION + + +requires + + + + +SYSTEM->FUNCTION + + +function + + + + +SYSTEM_DEVELOPMENT + + +SYSTEM_DEVELOPMENT +:: ACTIVITY + + + +SYSTEM->SYSTEM_DEVELOPMENT + + +wasGeneratedBy + + + + +FUNCTION->FUNCTION + + +parentFunction + + + + +INTERFACE + +INTERFACE +:: ENTITY + + + +INTERFACE->SYSTEM + + +source + + + + +INTERFACE->SYSTEM + + +destination + + + + +OP_ENV + +OP_ENV +:: THING + + + +OP_PROCEDURE + +OP_PROCEDURE + + + +OP_PROCEDURE->PROCEDURE + + + + + +SRS_Doc + +SRS_Doc + + + +SRS_Doc->DOCUMENT + + + + + +SRS_Req + +SRS_Req + + + +SRS_Doc->SRS_Req + + +> content + + + + +PIDS_Doc + +PIDS_Doc + + + +PIDS_Doc->DOCUMENT + + + + + +PIDS_Req + +PIDS_Req + + + +PIDS_Doc->PIDS_Req + + +> content + + + + +SubDD_Doc + +SubDD_Doc + + + +SubDD_Doc->DOCUMENT + + + + + +SubDD_Req + +SubDD_Req + + + +SubDD_Doc->SubDD_Req + + +> content + + + + +SRS_Req->REQUIREMENT + + + + + +PIDS_Req->REQUIREMENT + + + + + +SubDD_Req->REQUIREMENT + + + + + +SubDD_Req->SRS_Req + + +> satisfies + + + + +CSID_Req + +CSID_Req + + + +CSID_Req->REQUIREMENT + + + + + +SBVT_Test + +SBVT_Test + + + +SBVT_Test->TEST + + + + + +SBVT_Result + +SBVT_Result + + + +SBVT_Result->TEST_RESULT + + + + + +SBVT_Result->SBVT_Test + + +> confirms + + + + +SBVT_Test_Procedure + +SBVT_Test_Procedure + + + +SBVT_Test_Procedure->TEST_PROCEDURE + + + + + +SBVT_Test_Step + +SBVT_Test_Step + + + +SBVT_Test_Procedure->SBVT_Test_Step + + + + + +SBVT_Test_Step->TEST_STEP + + + + + +SBVT_Test_Step->SBVT_Test_Step + + +> nextStep + + + + +Signal + +Signal + + + +SBVT_Test_Step->Signal + + +stimulates + + + + +SBVT_Test_Step->Signal + + +observes + + + + +Message + +Message + + + +Message->INTERFACE + + + + + +Signal->DATA_DICTIONARY_TERM + + + + + +Signal->Message + + +message + + + + +SBVT_Test_Log + +SBVT_Test_Log + + + +SBVT_Test_Log->TEST_LOG + + + + + +SBVT_Test_Record + +SBVT_Test_Record + + + +SBVT_Test_Log->SBVT_Test_Record + + +> content + + + + +SBVT_Test_Execution + + +SBVT_Test_Execution + + + +SBVT_Test_Log->SBVT_Test_Execution + + +testExecution [1] + + + + +SBVT_Test_Record->TEST_RECORD + + + + + +SBVT_Test_Record->SBVT_Test_Step + + +> logs + + + + +IDD_Test_Result + +IDD_Test_Result + + + +IDD_Test_Result->TEST_RESULT + + + + + +IDD_Test + +IDD_Test + + + +IDD_Test_Result->IDD_Test + + +> confirms + + + + +IDD_Test->TEST + + + + + +IDD + +IDD + + + +IDD->INTERFACE + + + + + +IDD_Doc + +IDD_Doc + + + +IDD_Doc->DOCUMENT + + + + + +IDDCoverageAnalysis + +IDDCoverageAnalysis + + + +IDDCoverageAnalysis->IDD_Test + + +analysisInput + + + + +ANALYSIS + +ANALYSIS + + + +IDDCoverageAnalysis->ANALYSIS + + + + + +IDDCoverageAnalysisResult + +IDDCoverageAnalysisResult + + + +IDDCoverageAnalysisResult->TEST_RESULT + + + + + +IDDCoverageAnalysisResult->IDD_Test + + +confirms + + + + +Test_Station + +Test_Station + + + +Test_Station->AGENT + + + + + +SBVT_Test_Execution->TEST_EXECUTION + + + + + +SBVT_Test_Execution->SYSTEM + + +systemUnderTest + + + + +SBVT_Test_Execution->SBVT_Test_Procedure + + +testProcedure + + + + +SBVT_Test_Execution->Test_Station + + +testStation + + + + +BuildVersion + +BuildVersion + + + +SBVT_Test_Execution->BuildVersion + + +systemUnderTestBuildVersion + + + + +Database + +Database + + + +SBVT_Test_Execution->Database + + +databaseVersion + + + + +Executable + +Executable + + + +SBVT_Test_Execution->Executable + + +buildVersion + + + + +Database->SWCOMPONENT + + + + + +Executable->SWCOMPONENT + + + + + 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 + H SADL - 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 + claim SADL - 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 + sadllistmodel platform:/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 - + + Rv SADL - baseline - + + platform:/resource/RACK-Ontology/ontology/REVIEW.sadl - platform:/resource/RACK-Ontology/ontology/HAZARD.sadl - + + baseline SADL - 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 - + + CWE SADL - 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 + Rs SADL - 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 + EntityResolution SADL - 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-881D RACK-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: