Skip to content

Commit

Permalink
Incorporate ontology review for REQUIREMENTS
Browse files Browse the repository at this point in the history
  • Loading branch information
glguy committed Jan 13, 2021
1 parent d384da0 commit d8271d2
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 39 deletions.
85 changes: 65 additions & 20 deletions RACK-Ontology/OwlModels/REQUIREMENTS.owl
@@ -1,6 +1,6 @@
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:provs="http://arcos.rack/PROV-S#"
xmlns:H="http://arcos.rack/HAZARD#"
xmlns:builtinfunctions="http://sadl.org/builtinfunctions#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:sadlimplicitmodel="http://sadl.org/sadlimplicitmodel#"
Expand All @@ -10,36 +10,81 @@
xmlns:Rq="http://arcos.rack/REQUIREMENTS#"
xml:base="http://arcos.rack/REQUIREMENTS">
<owl:Ontology rdf:about="">
<owl:imports rdf:resource="PROV-S"/>
<owl:imports rdf:resource="HAZARD"/>
<owl:imports rdf:resource="http://sadl.org/builtinfunctions"/>
<owl:imports rdf:resource="http://sadl.org/sadlimplicitmodel"/>
<owl:imports rdf:resource="http://sadl.org/sadlbasemodel"/>
<rdfs:comment xml:lang="en">This ontology was created from a SADL file 'REQUIREMENTS.sadl' and should not be directly edited.</rdfs:comment>
</owl:Ontology>
<owl:Class rdf:ID="REQUIREMENT">
<rdfs:comment xml:lang="en">Captures (both high- and low-level) properties of a process or artifact that are to be assessed</rdfs:comment>
<rdfs:subClassOf rdf:resource="PROV-S#ENTITY"/>
</owl:Class>
<owl:Class rdf:ID="REQUIREMENT_DEVELOPMENT">
<rdfs:comment xml:lang="en">ACTIVITY that produces REQUIREMENTs</rdfs:comment>
<rdfs:subClassOf rdf:resource="PROV-S#ACTIVITY"/>
</owl:Class>
<owl:Class rdf:ID="REQUIREMENT">
<rdfs:subClassOf>
<owl:Restriction>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:minCardinality>
<owl:onProperty>
<owl:DatatypeProperty rdf:ID="thenText"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:maxCardinality>
<owl:onProperty>
<owl:DatatypeProperty rdf:ID="ifText"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:maxCardinality>
<owl:onProperty>
<owl:DatatypeProperty rdf:ID="givenText"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:cardinality>
<owl:onProperty>
<owl:DatatypeProperty rdf:ID="text"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:comment xml:lang="en">Captures (both high- and low-level) properties of a process or artifact that are to be assessed</rdfs:comment>
<rdfs:subClassOf rdf:resource="PROV-S#ENTITY"/>
</owl:Class>
<owl:Class rdf:ID="DATA_DICTIONARY_TERM">
<rdfs:subClassOf>
<owl:Restriction>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:maxCardinality>
<owl:onProperty>
<owl:DatatypeProperty rdf:about="#text"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:comment xml:lang="en">Defines some conceptual data that may be collected somewhere and used somewhere else</rdfs:comment>
<rdfs:subClassOf rdf:resource="PROV-S#ENTITY"/>
</owl:Class>
<owl:ObjectProperty rdf:ID="mitigates">
<rdfs:subPropertyOf rdf:resource="PROV-S#wasDerivedFrom"/>
<rdfs:comment xml:lang="en">ENTITY(s) (e.g. HAZARD) that is being mitigated by this REQUIREMENT</rdfs:comment>
<rdfs:range rdf:resource="PROV-S#ENTITY"/>
<rdfs:domain rdf:resource="#REQUIREMENT"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="consumedBy">
<rdfs:subPropertyOf rdf:resource="PROV-S#wasDerivedFrom"/>
<rdfs:subPropertyOf rdf:resource="PROV-S#wasImpactedBy"/>
<rdfs:comment xml:lang="en">ENTITY(s) (e.g. REQUIREMENT) that consumes this information</rdfs:comment>
<rdfs:range rdf:resource="PROV-S#ENTITY"/>
<rdfs:domain rdf:resource="#DATA_DICTIONARY_TERM"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="mitigates">
<rdfs:subPropertyOf rdf:resource="PROV-S#wasImpactedBy"/>
<rdfs:comment xml:lang="en">ENTITY(s) (e.g. HAZARD) that is being mitigated by this REQUIREMENT</rdfs:comment>
<rdfs:range rdf:resource="HAZARD#HAZARD"/>
<rdfs:domain rdf:resource="#REQUIREMENT"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="author">
<rdfs:subPropertyOf rdf:resource="PROV-S#wasAssociatedWith"/>
<rdfs:comment xml:lang="en">AGENT(s) responsible for producing a REQUIREMENT</rdfs:comment>
Expand Down Expand Up @@ -73,24 +118,24 @@
<rdfs:domain rdf:resource="#REQUIREMENT_DEVELOPMENT"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="providedBy">
<rdfs:subPropertyOf rdf:resource="PROV-S#wasDerivedFrom"/>
<rdfs:subPropertyOf rdf:resource="PROV-S#wasImpactedBy"/>
<rdfs:comment xml:lang="en">ENTITY(s) (e.g. REQUIREMENT) that provides this information</rdfs:comment>
<rdfs:range rdf:resource="PROV-S#ENTITY"/>
<rdfs:domain rdf:resource="#DATA_DICTIONARY_TERM"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="satisfies">
<rdfs:subPropertyOf rdf:resource="PROV-S#wasDerivedFrom"/>
<rdfs:subPropertyOf rdf:resource="PROV-S#wasImpactedBy"/>
<rdfs:comment xml:lang="en">Parent ENTITY(s) (e.g. REQUIREMENT) that this REQUIREMENT is derived from</rdfs:comment>
<rdfs:range rdf:resource="PROV-S#ENTITY"/>
<rdfs:domain rdf:resource="#REQUIREMENT"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="governs">
<rdfs:subPropertyOf rdf:resource="PROV-S#wasDerivedFrom"/>
<rdfs:subPropertyOf rdf:resource="PROV-S#wasImpactedBy"/>
<rdfs:comment xml:lang="en">ENTITY(s) that are the subject of the requirement</rdfs:comment>
<rdfs:range rdf:resource="PROV-S#ENTITY"/>
<rdfs:domain rdf:resource="#REQUIREMENT"/>
</owl:ObjectProperty>
<owl:DatatypeProperty rdf:ID="text">
<owl:DatatypeProperty rdf:about="#text">
<rdfs:comment xml:lang="en">Description of the term</rdfs:comment>
<rdfs:domain>
<owl:Class>
Expand All @@ -103,17 +148,17 @@
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:comment xml:lang="en">Description of the REQUIREMENT</rdfs:comment>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="thenText">
<owl:DatatypeProperty rdf:about="#thenText">
<rdfs:comment xml:lang="en">specifies what should hold by this requirement if the requirement conditions are met</rdfs:comment>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:domain rdf:resource="#REQUIREMENT"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="ifText">
<owl:DatatypeProperty rdf:about="#ifText">
<rdfs:comment xml:lang="en">conditions under which this requirement holds</rdfs:comment>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:domain rdf:resource="#REQUIREMENT"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="givenText">
<owl:DatatypeProperty rdf:about="#givenText">
<rdfs:comment xml:lang="en">optional part that can be used to set certain conditions apart from other conditions in the ifText part</rdfs:comment>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:domain rdf:resource="#REQUIREMENT"/>
Expand Down
49 changes: 30 additions & 19 deletions RACK-Ontology/ontology/REQUIREMENTS.sadl
Expand Up @@ -10,62 +10,73 @@
* of the Defense Advanced Research Projects Agency (DARPA).
*/

/************** edit history *****************
*
* dwa - 11 Nov 2020 - reduced cardinality of several
* dwa - 11 Nov 2020 - removed incorrect associations
* dwa - 11 Nov 2020 - removed unnecessary subclassing
*
*********************************************/

uri "http://arcos.rack/REQUIREMENTS" alias Rq.
import "http://arcos.rack/PROV-S".
import "http://arcos.rack/HAZARD".

REQUIREMENT
(note "Captures (both high- and low-level) properties of a process or artifact that are to be assessed")
is a type of ENTITY.

text (note "Description of the REQUIREMENT") describes REQUIREMENT with values of type string.
text (note "Description of the REQUIREMENT") describes REQUIREMENT with a single value of type string.
// 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.
givenText describes REQUIREMENT with at most 1 value.
ifText (note "conditions under which this requirement holds") describes REQUIREMENT with values of type string.
ifText describes REQUIREMENT with at most 1 value.
thenText (note "specifies what should hold by this requirement if the requirement conditions are met") describes REQUIREMENT with values of type string.
thenText describes REQUIREMENT with at least 1 value.

governs (note "ENTITY(s) that are the subject of the requirement") describes REQUIREMENT with values of type ENTITY.
governs is a type of wasDerivedFrom.
governs is a type of wasImpactedBy.

satisfies (note "Parent ENTITY(s) (e.g. REQUIREMENT) that this REQUIREMENT is derived from") describes REQUIREMENT with values of type ENTITY.
satisfies is a type of wasDerivedFrom.

mitigates (note "ENTITY(s) (e.g. HAZARD) that is being mitigated by this REQUIREMENT") describes REQUIREMENT with values of type ENTITY.
mitigates is a type of wasDerivedFrom.
satisfies is a type of wasImpactedBy.

createdBy (note "ACTIVITY(s) (e.g. REQUIREMENT_DEVELOPMENT) that created this REQUIREMENT") describes REQUIREMENT with values of type ACTIVITY.
createdBy is a type of wasGeneratedBy.
Rq:mitigates (note "ENTITY(s) (e.g. HAZARD) that is being mitigated by this REQUIREMENT") describes REQUIREMENT with values of type HAZARD.
Rq:mitigates is a type of wasImpactedBy.

Rq:createdBy (note "ACTIVITY(s) (e.g. REQUIREMENT_DEVELOPMENT) that created this REQUIREMENT") describes REQUIREMENT with values of type ACTIVITY.
Rq:createdBy is a type of wasGeneratedBy.

DATA_DICTIONARY_TERM
(note "Defines some conceptual data that may be collected somewhere and used somewhere else")
is a type of ENTITY.

text (note "Description of the term") describes DATA_DICTIONARY_TERM with values of type string.
text describes DATA_DICTIONARY_TERM with at most 1 value.

providedBy (note "ENTITY(s) (e.g. REQUIREMENT) that provides this information") describes DATA_DICTIONARY_TERM with values of type ENTITY.
providedBy is a type of wasDerivedFrom.
providedBy is a type of wasImpactedBy.

consumedBy (note "ENTITY(s) (e.g. REQUIREMENT) that consumes this information") describes DATA_DICTIONARY_TERM with values of type ENTITY.
consumedBy is a type of wasDerivedFrom.
consumedBy is a type of wasImpactedBy.

createdBy (note "ACTIVITY(s) (e.g. REQUIREMENT_DEVELOPMENT) that created this data dictionary term") describes DATA_DICTIONARY_TERM with values of type ACTIVITY.
createdBy is a type of wasGeneratedBy.
Rq:createdBy (note "ACTIVITY(s) (e.g. REQUIREMENT_DEVELOPMENT) that created this data dictionary term") describes DATA_DICTIONARY_TERM with values of type ACTIVITY.
Rq:createdBy is a type of wasGeneratedBy.


REQUIREMENT_DEVELOPMENT
(note "ACTIVITY that produces REQUIREMENTs")
is a type of ACTIVITY.

author (note "AGENT(s) responsible for producing a REQUIREMENT") describes REQUIREMENT_DEVELOPMENT with values of type AGENT.
author is a type of wasAssociatedWith.
Rq:author (note "AGENT(s) responsible for producing a REQUIREMENT") describes REQUIREMENT_DEVELOPMENT with values of type AGENT.
Rq:author is a type of wasAssociatedWith.

referenced (note "Source materials (requirement and design docs) used during development") describes REQUIREMENT_DEVELOPMENT with values of type ENTITY.
referenced is a type of used.
Rq:referenced (note "Source materials (requirement and design docs) used during development") describes REQUIREMENT_DEVELOPMENT with values of type ENTITY.
Rq:referenced is a type of used.

governedBy (note "ENTITY(s) (e.g. REQUIREMENTS, any sort of document) used during this ACTIVITY") describes REQUIREMENT_DEVELOPMENT with values of type ENTITY.
governedBy is a type of used.
Rq:governedBy (note "ENTITY(s) (e.g. REQUIREMENTS, any sort of document) used during this ACTIVITY") describes REQUIREMENT_DEVELOPMENT with values of type ENTITY.
Rq:governedBy is a type of used.

0 comments on commit d8271d2

Please sign in to comment.