diff --git a/GrammaTech-Ontology/OwlModels/GrammaTech.owl b/GrammaTech-Ontology/OwlModels/GrammaTech.owl
index dfd225d9..6673c6bb 100644
--- a/GrammaTech-Ontology/OwlModels/GrammaTech.owl
+++ b/GrammaTech-Ontology/OwlModels/GrammaTech.owl
@@ -10,21 +10,19 @@
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xml:base="http://arcos.acert/GrammaTech">
-
+
+
+
-
-
-
-
This ontology was created from a SADL file 'GrammaTech.sadl' and should not be directly edited.
+
+
+
-
-
-
@@ -47,11 +45,24 @@
High-level reasons for ACERT test result failure
+
+
+
reason for failure, e.g.: timeout, crash, bad output
+
+ specifies what should hold by this requirement if the requirement conditions are met
+
+
+
+
+ optional part that can be used to set certain conditions apart from other conditions in the ifText part
+
+
+
Additional detail describing the failure reason
@@ -60,12 +71,17 @@
confidence that this was the given-portion of the text
-
+
confidence that this was requirement text
-
+
+
+
+ conditions under which this requirement holds
+
+
maximum bytes of resident memory used by test execution
@@ -80,11 +96,11 @@
confidence that this was the then-portion of the text
-
+
confidence that this was the if-portion of the text
-
+
diff --git a/GrammaTech-Ontology/ontology/GrammaTech.sadl b/GrammaTech-Ontology/ontology/GrammaTech.sadl
index ad304ce2..0a4c9a9f 100644
--- a/GrammaTech-Ontology/ontology/GrammaTech.sadl
+++ b/GrammaTech-Ontology/ontology/GrammaTech.sadl
@@ -4,17 +4,28 @@ import "http://arcos.rack/TESTING".
import "http://arcos.rack/DOCUMENT".
import "http://arcos.rack/SOFTWARE".
import "http://arcos.rack/REQUIREMENTS".
+import "http://arcos.rack/MODEL".
/* ACERT requirements have confidence parameters on text extraction */
-AcertRequirement is a type of REQUIREMENT.
+AcertRequirementModel is a type of MODEL.
+
textConfidence (note "confidence that this was requirement text")
- describes AcertRequirement with values of type double.
+ describes AcertRequirementModel with values of type double.
+
+ ifText (note "conditions under which this requirement holds")
+ describes AcertRequirementModel with values of type string.
ifTextConfidence (note "confidence that this was the if-portion of the text")
- describes AcertRequirement with values of type double.
+ describes AcertRequirementModel with values of type double.
+
+ thenText (note "specifies what should hold by this requirement if the requirement conditions are met")
+ describes AcertRequirementModel with values of type string.
thenTextConfidence (note "confidence that this was the then-portion of the text")
- describes AcertRequirement with values of type double.
+ describes AcertRequirementModel with values of type double.
+
+ givenText (note "optional part that can be used to set certain conditions apart from other conditions in the ifText part")
+ describes AcertRequirementModel with values of type string.
givenTextConfidence (note "confidence that this was the given-portion of the text")
- describes AcertRequirement with values of type double.
+ describes AcertRequirementModel with values of type double.
AcertTestResult is a type of TEST_RESULT.
failureReason (note "reason for failure, e.g.: timeout, crash, bad output")
diff --git a/RACK-Ontology/OwlModels/MODEL.owl b/RACK-Ontology/OwlModels/MODEL.owl
new file mode 100644
index 00000000..35afc6d5
--- /dev/null
+++ b/RACK-Ontology/OwlModels/MODEL.owl
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ This ontology was created from a SADL file 'MODEL.sadl' and should not be directly edited.
+
+
+
+
+ 1
+
+
+
+
+
+ A physical, mathematical, or otherwise logical representation of a system, entity, phenomenon, or process
+
+
+
+ The thing being modeled
+
+
+
+
diff --git a/RACK-Ontology/OwlModels/REQUIREMENTS.owl b/RACK-Ontology/OwlModels/REQUIREMENTS.owl
index c29a9ada..4da8bbf3 100644
--- a/RACK-Ontology/OwlModels/REQUIREMENTS.owl
+++ b/RACK-Ontology/OwlModels/REQUIREMENTS.owl
@@ -28,18 +28,18 @@
Defines some conceptual data that may be collected somewhere and used somewhere else
-
-
- ENTITY(s) (e.g. HAZARD) that is being mitigated by this REQUIREMENT
-
-
-
ENTITY(s) (e.g. REQUIREMENT) that consumes this information
+
+
+ ENTITY(s) (e.g. HAZARD) that is being mitigated by this REQUIREMENT
+
+
+
AGENT(s) responsible for producing a REQUIREMENT
@@ -90,19 +90,4 @@
-
- specifies what should hold by this requirement if the requirement conditions are met
-
-
-
-
- conditions under which this requirement holds
-
-
-
-
- optional part that can be used to set certain conditions apart from other conditions in the ifText part
-
-
-
diff --git a/RACK-Ontology/OwlModels/import.yaml b/RACK-Ontology/OwlModels/import.yaml
index 2b78a11a..982faaca 100644
--- a/RACK-Ontology/OwlModels/import.yaml
+++ b/RACK-Ontology/OwlModels/import.yaml
@@ -9,6 +9,7 @@ files:
- DOCUMENT.owl
- FILE.owl
- HAZARD.owl
+- MODEL.owl
- PROCESS.owl
- PROV-S.owl
- REQUIREMENTS.owl
diff --git a/RACK-Ontology/ontology/MODEL.sadl b/RACK-Ontology/ontology/MODEL.sadl
new file mode 100644
index 00000000..e349329f
--- /dev/null
+++ b/RACK-Ontology/ontology/MODEL.sadl
@@ -0,0 +1,25 @@
+/* Copyright (c) 2021, General Electric Company, Galois, Inc.
+ *
+ * All Rights Reserved
+ *
+ * This material is based upon work supported by the Defense Advanced Research
+ * Projects Agency (DARPA) under Contract No. FA8750-20-C-0203.
+ *
+ * Any opinions, findings and conclusions or recommendations expressed in this
+ * material are those of the author(s) and do not necessarily reflect the views
+ * of the Defense Advanced Research Projects Agency (DARPA).
+ */
+
+/************** edit history *****************
+ *
+ * em - 12 Feb 2021 - Initial revision
+ *
+ *********************************************/
+
+
+uri "http://arcos.rack/MODEL" alias M.
+import "http://arcos.rack/PROV-S".
+
+MODEL (note "A physical, mathematical, or otherwise logical representation of a system, entity, phenomenon, or process")
+ is a type of ENTITY.
+ models (note "The thing being modeled") describes MODEL with a single value of type THING.
diff --git a/RACK-Ontology/ontology/REQUIREMENTS.sadl b/RACK-Ontology/ontology/REQUIREMENTS.sadl
index 5ed79722..590e6054 100644
--- a/RACK-Ontology/ontology/REQUIREMENTS.sadl
+++ b/RACK-Ontology/ontology/REQUIREMENTS.sadl
@@ -21,22 +21,12 @@
uri "http://arcos.rack/REQUIREMENTS" alias Rq.
import "http://arcos.rack/HAZARD".
+// The natural language text of a requirement can be captured in the
+// *description* property common to all RACK data.
REQUIREMENT
(note "Captures (both high- and low-level) properties of a process or artifact that are to be assessed")
is a type of ENTITY.
- // The "text" string can optionally be subdivided into sub-parts : givenText, ifText, thenText
- // This corresponds to how rules are defined in SADL and note that in a SADL rule whatever is in
- // givenText can simply be included in the ifText part.
- // Note that modulo naming changes this structure also matches the structure
- // that GrammaTech had which was : Given, When, Then parts.
- // The structure of requirements in ASSERT subsume this structure of requirements.
- givenText (note "optional part that can be used to set certain conditions apart from other conditions in the ifText part") describes REQUIREMENT with values of type string.
-
- ifText (note "conditions under which this requirement holds") describes REQUIREMENT with values of type string.
-
- thenText (note "specifies what should hold by this requirement if the requirement conditions are met") describes REQUIREMENT with values of type string.
-
governs (note "ENTITY(s) that are the subject of the requirement") describes REQUIREMENT with values of type ENTITY.
governs is a type of wasImpactedBy.
diff --git a/STR-Ontology/OwlModels/STR.owl b/STR-Ontology/OwlModels/STR.owl
index 88f53b8a..3e04161c 100644
--- a/STR-Ontology/OwlModels/STR.owl
+++ b/STR-Ontology/OwlModels/STR.owl
@@ -9,6 +9,7 @@
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xml:base="http://arcos.arbiter/STR">
+
@@ -41,6 +42,10 @@
The communication interface of a concrete software component.
+
+ A requirement statement written in the Easy Approach to Requirements Syntax language.
+
+
A concrete software component with an explicitly identified input/output interface
@@ -70,6 +75,11 @@
+
+ Text of statement written in the EARS requirements language.
+
+
+
The type of information communicated over this port
diff --git a/STR-Ontology/ontology/STR.sadl b/STR-Ontology/ontology/STR.sadl
index 82e656e8..d48be81c 100644
--- a/STR-Ontology/ontology/STR.sadl
+++ b/STR-Ontology/ontology/STR.sadl
@@ -2,6 +2,7 @@ uri "http://arcos.arbiter/STR" alias Arbiter.
import "http://arcos.rack/SYSTEM".
import "http://arcos.rack/SOFTWARE".
+import "http://arcos.rack/MODEL".
StrSystem (note "A component of the logical system with a concept of sequencing dependency")
is a type of SYSTEM.
@@ -32,3 +33,9 @@ StrComponent (note "A concrete software component with an explicitly identified
describes StrComponent with values of type StrOutPort.
recvsVia (note "Links a component to its incoming interface")
describes StrComponent with values of type StrInPort.
+
+StrEarsModel (note "A requirement statement written in the Easy Approach to Requirements Syntax language.")
+ is a type of MODEL.
+
+ earsStatement (note "Text of statement written in the EARS requirements language.")
+ describes StrEarsModel with values of type string.
diff --git a/nodegroups/queries/query Models for Thing.json b/nodegroups/queries/query Models for Thing.json
new file mode 100644
index 00000000..9b482eba
--- /dev/null
+++ b/nodegroups/queries/query Models for Thing.json
@@ -0,0 +1,141 @@
+{
+ "importSpec": {
+ "baseURI": "",
+ "columns": [],
+ "dataValidator": [],
+ "nodes": [
+ {
+ "mapping": [],
+ "props": [],
+ "sparqlID": "?MODEL",
+ "type": "http://arcos.rack/MODEL#MODEL"
+ },
+ {
+ "mapping": [],
+ "props": [],
+ "sparqlID": "?THING",
+ "type": "http://arcos.rack/PROV-S#THING"
+ }
+ ],
+ "texts": [],
+ "transforms": [],
+ "version": "1"
+ },
+ "sNodeGroup": {
+ "limit": 0,
+ "offset": 0,
+ "orderBy": [],
+ "sNodeList": [
+ {
+ "NodeName": "THING",
+ "SparqlID": "?THING",
+ "deletionMode": "NO_DELETE",
+ "fullURIName": "http://arcos.rack/PROV-S#THING",
+ "instanceValue": null,
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "nodeList": [],
+ "propList": [
+ {
+ "Constraints": "",
+ "KeyName": "identifier",
+ "SparqlID": "?thing_id",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "ValueType": "string",
+ "fullURIName": "",
+ "instanceValues": [],
+ "isMarkedForDeletion": false,
+ "isReturned": false,
+ "isRuntimeConstrained": true,
+ "optMinus": 0,
+ "relationship": "http://www.w3.org/2001/XMLSchema#string"
+ }
+ ],
+ "valueConstraint": ""
+ },
+ {
+ "NodeName": "MODEL",
+ "SparqlID": "?MODEL",
+ "binding": "?model",
+ "deletionMode": "NO_DELETE",
+ "fullURIName": "http://arcos.rack/MODEL#MODEL",
+ "instanceValue": null,
+ "isBindingReturned": true,
+ "isReturned": false,
+ "isRuntimeConstrained": false,
+ "isTypeReturned": true,
+ "nodeList": [
+ {
+ "ConnectBy": "models",
+ "Connected": true,
+ "DeletionMarkers": [
+ false
+ ],
+ "KeyName": "models",
+ "OptionalMinus": [
+ 0
+ ],
+ "Qualifiers": [
+ ""
+ ],
+ "SnodeSparqlIDs": [
+ "?THING"
+ ],
+ "UriConnectBy": "http://arcos.rack/MODEL#models",
+ "UriValueType": "http://arcos.rack/PROV-S#THING",
+ "ValueType": "THING"
+ }
+ ],
+ "propList": [
+ {
+ "Constraints": "",
+ "KeyName": "identifier",
+ "SparqlID": "?model_id",
+ "UriRelationship": "http://arcos.rack/PROV-S#identifier",
+ "ValueType": "string",
+ "fullURIName": "",
+ "instanceValues": [],
+ "isMarkedForDeletion": false,
+ "isReturned": true,
+ "isRuntimeConstrained": false,
+ "optMinus": 0,
+ "relationship": "http://www.w3.org/2001/XMLSchema#string"
+ }
+ ],
+ "valueConstraint": ""
+ }
+ ],
+ "unionHash": {},
+ "version": 12
+ },
+ "sparqlConn": {
+ "data": [
+ {
+ "graph": "http://rack001/data",
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK"
+ },
+ {
+ "graph": "http://rack001/do-178c",
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK"
+ },
+ {
+ "graph": "http://rack001/boeing",
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK"
+ }
+ ],
+ "domain": "",
+ "enableOwlImports": true,
+ "model": [
+ {
+ "graph": "http://rack001/model",
+ "type": "fuseki",
+ "url": "http://localhost:3030/RACK"
+ }
+ ],
+ "name": "RACK"
+ },
+ "version": 2
+}
diff --git a/nodegroups/queries/store_data.csv b/nodegroups/queries/store_data.csv
index ddf04012..f638eb8e 100644
--- a/nodegroups/queries/store_data.csv
+++ b/nodegroups/queries/store_data.csv
@@ -15,3 +15,4 @@ query Compilation Inputs,Find inputs used in compilation of executables,langston
query System Structure,Extract system subcomponent structure contained under a given top-level anchor system,eric,query System Structure.json
query test empty thing,Check for non-SYSTEM typed things with identifer and no other properties,200001934,query test empty thing.json
query Requirements without passed test,"No Test, or no test result, or failure",200001934,query Requirements without passed test.json
+query Models for Thing,Query that finds all the models and their types given a target THING identifier,em,query Models for Thing.json