Skip to content

Commit

Permalink
Refine the analysis ontology
Browse files Browse the repository at this point in the history
  • Loading branch information
glguy committed Aug 18, 2021
1 parent 42ceaff commit c633713
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 121 deletions.
105 changes: 25 additions & 80 deletions RACK-Ontology/OwlModels/ANALYSIS.owl
Expand Up @@ -6,89 +6,61 @@
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:sadlimplicitmodel="http://sadl.org/sadlimplicitmodel#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:D="http://arcos.rack/DOCUMENT#"
xmlns:sadlbasemodel="http://sadl.org/sadlbasemodel#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xml:base="http://arcos.rack/ANALYSIS">
<owl:Ontology rdf:about="">
<owl:imports rdf:resource="DOCUMENT"/>
<owl:imports rdf:resource="PROV-S"/>
<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 'ANALYSIS.sadl' and should not be directly edited.</rdfs:comment>
</owl:Ontology>
<owl:Class rdf:ID="ANALYSIS_ANNOTATION">
<rdfs:subClassOf>
<owl:Restriction>
<owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:cardinality>
<owl:onProperty>
<owl:ObjectProperty rdf:ID="annotationType"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<owl:Class rdf:ID="ANALYSIS_RESULT">
<rdfs:subClassOf>
<owl:Restriction>
<owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:cardinality>
<owl:onProperty>
<owl:ObjectProperty rdf:ID="fromReport"/>
<owl:ObjectProperty rdf:ID="fromOutput"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:comment xml:lang="en">A result of the analysis that is linked to some specific part of the system.</rdfs:comment>
<rdfs:subClassOf rdf:resource="PROV-S#ENTITY"/>
</owl:Class>
<owl:Class rdf:ID="ANALYSIS_RESULT">
<owl:equivalentClass>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<An:ANALYSIS_RESULT rdf:ID="Passed">
<provs:identifier>Passed</provs:identifier>
</An:ANALYSIS_RESULT>
<An:ANALYSIS_RESULT rdf:ID="Failed">
<provs:identifier>Failed</provs:identifier>
</An:ANALYSIS_RESULT>
<An:ANALYSIS_RESULT rdf:ID="Indeterminate">
<provs:identifier>Indeterminate</provs:identifier>
</An:ANALYSIS_RESULT>
</owl:oneOf>
</owl:Class>
</owl:equivalentClass>
<rdfs:comment xml:lang="en">Outcome of an analysis</rdfs:comment>
<rdfs:subClassOf rdf:resource="PROV-S#THING"/>
</owl:Class>
<owl:Class rdf:ID="ANALYSIS_ANNOTATION_TYPE">
<rdfs:comment xml:lang="en">An open/extensible set of types of analysis annotations</rdfs:comment>
<rdfs:subClassOf rdf:resource="PROV-S#THING"/>
</owl:Class>
<owl:Class rdf:ID="ANALYSIS_OUTPUT">
<rdfs:subClassOf>
<owl:Restriction>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:maxCardinality>
<owl:onProperty>
<owl:ObjectProperty rdf:ID="result"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:comment xml:lang="en">Output of an ANALYSIS</rdfs:comment>
<rdfs:subClassOf rdf:resource="PROV-S#ENTITY"/>
</owl:Class>
<owl:Class rdf:ID="ANALYSIS">
<rdfs:comment xml:lang="en">ACTIVITY of running some analysis, and as a result creating some ANALYSIS_REPORT</rdfs:comment>
<rdfs:comment xml:lang="en">ACTIVITY of running some analysis, and as a result creating some ANALYSIS_OUTPUT</rdfs:comment>
<rdfs:subClassOf rdf:resource="PROV-S#ACTIVITY"/>
</owl:Class>
<owl:Class rdf:ID="ANALYSIS_FINDING">
<rdfs:comment xml:lang="en">An open/extensible set of analysis findings.</rdfs:comment>
<rdfs:subClassOf rdf:resource="PROV-S#THING"/>
</owl:Class>
<owl:ObjectProperty rdf:ID="analyzedWith">
<rdfs:subPropertyOf rdf:resource="PROV-S#wasAssociatedWith"/>
<rdfs:comment xml:lang="en">Agent responsible for producing the output.</rdfs:comment>
<rdfs:range rdf:resource="PROV-S#AGENT"/>
<rdfs:domain rdf:resource="#ANALYSIS"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="producedBy">
<rdfs:subPropertyOf rdf:resource="PROV-S#wasGeneratedBy"/>
<rdfs:comment xml:lang="en">ACTIVITY(s) (e.g. ANALYSIS) producing this report</rdfs:comment>
<rdfs:comment xml:lang="en">ACTIVITY(s) (e.g. ANALYSIS) producing this output</rdfs:comment>
<rdfs:range rdf:resource="PROV-S#ACTIVITY"/>
<rdfs:domain rdf:resource="#ANALYSIS_OUTPUT"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="performedBy">
<owl:ObjectProperty rdf:about="#fromOutput">
<rdfs:comment xml:lang="en">Which analysis report this annotation comes from.</rdfs:comment>
<rdfs:range rdf:resource="#ANALYSIS_OUTPUT"/>
<rdfs:domain rdf:resource="#ANALYSIS_RESULT"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="runBy">
<rdfs:subPropertyOf rdf:resource="PROV-S#wasAssociatedWith"/>
<rdfs:comment xml:lang="en">Entity that is responsible for producing an analysis, could be a person or a tool. </rdfs:comment>
<rdfs:comment xml:lang="en">Agent responsible for running the analysis.</rdfs:comment>
<rdfs:range rdf:resource="PROV-S#AGENT"/>
<rdfs:domain rdf:resource="#ANALYSIS"/>
</owl:ObjectProperty>
Expand All @@ -98,36 +70,9 @@
<rdfs:range rdf:resource="PROV-S#ENTITY"/>
<rdfs:domain rdf:resource="#ANALYSIS_OUTPUT"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#annotationType">
<rdfs:comment xml:lang="en">The type of the annotation.</rdfs:comment>
<rdfs:range rdf:resource="#ANALYSIS_ANNOTATION_TYPE"/>
<rdfs:domain rdf:resource="#ANALYSIS_ANNOTATION"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#fromReport">
<rdfs:comment xml:lang="en">Which analysis report this annotation comes from.</rdfs:comment>
<rdfs:range rdf:resource="#ANALYSIS_OUTPUT"/>
<rdfs:domain rdf:resource="#ANALYSIS_ANNOTATION"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#result">
<rdfs:comment xml:lang="en">Passed/Failed/Indeterminate status of this report</rdfs:comment>
<rdfs:range rdf:resource="#ANALYSIS_RESULT"/>
<rdfs:domain rdf:resource="#ANALYSIS_OUTPUT"/>
<owl:ObjectProperty rdf:ID="finding">
<rdfs:comment xml:lang="en">Individual elements of the result.</rdfs:comment>
<rdfs:range rdf:resource="#ANALYSIS_FINDING"/>
<rdfs:domain rdf:resource="#ANALYSIS_RESULT"/>
</owl:ObjectProperty>
<owl:DatatypeProperty rdf:ID="metric">
<rdfs:comment xml:lang="en">provides a numerical result value from the analysis that was performed</rdfs:comment>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#float"/>
<rdfs:domain rdf:resource="#ANALYSIS_OUTPUT"/>
</owl:DatatypeProperty>
<An:ANALYSIS_ANNOTATION_TYPE rdf:ID="POSTCONDITION">
<provs:identifier>Postcondition</provs:identifier>
<rdfs:comment xml:lang="en">A constraint that should hold after of successful operation of this unit of code.</rdfs:comment>
</An:ANALYSIS_ANNOTATION_TYPE>
<An:ANALYSIS_ANNOTATION_TYPE rdf:ID="INVARIANT">
<provs:identifier>Invariant</provs:identifier>
<rdfs:comment xml:lang="en">A constraint on this unit of code or data that is true at any point in the program's execution.</rdfs:comment>
</An:ANALYSIS_ANNOTATION_TYPE>
<An:ANALYSIS_ANNOTATION_TYPE rdf:ID="PRECONDITION">
<provs:identifier>Precondition</provs:identifier>
<rdfs:comment xml:lang="en">A constraint that should hold in advance of successful operation of this unit of code.</rdfs:comment>
</An:ANALYSIS_ANNOTATION_TYPE>
</rdf:RDF>
60 changes: 19 additions & 41 deletions RACK-Ontology/ontology/ANALYSIS.sadl
Expand Up @@ -22,57 +22,35 @@

uri "http://arcos.rack/ANALYSIS" alias ^An.
import "http://arcos.rack/PROV-S".
import "http://arcos.rack/DOCUMENT".

ANALYSIS
(note "ACTIVITY of running some analysis, and as a result creating some ANALYSIS_OUTPUT")
is a type of ACTIVITY.

runBy (note "Agent responsible for running the analysis.") describes ANALYSIS with values of type AGENT.
runBy is a type of wasAssociatedWith.

analyzedWith (note "Agent responsible for producing the output.") describes ANALYSIS with values of type AGENT.
analyzedWith is a type of wasAssociatedWith.

ANALYSIS_OUTPUT
(note "Output of an ANALYSIS")
is a type of ENTITY.

result (note "Passed/Failed/Indeterminate status of this report") describes ANALYSIS_OUTPUT with values of type ANALYSIS_RESULT.
result describes ANALYSIS_OUTPUT with at most 1 value.

metric (note "provides a numerical result value from the analysis that was performed") describes ANALYSIS_OUTPUT with values of type float.

analyzes (note "ENTITY(s) under analysis") describes ANALYSIS_OUTPUT with values of type ENTITY.
analyzes is a type of wasImpactedBy.

producedBy (note "ACTIVITY(s) (e.g. ANALYSIS) producing this report") describes ANALYSIS_OUTPUT with values of type ACTIVITY.
producedBy (note "ACTIVITY(s) (e.g. ANALYSIS) producing this output") describes ANALYSIS_OUTPUT with values of type ACTIVITY.
producedBy is a type of wasGeneratedBy.

ANALYSIS_RESULT (note "Outcome of an analysis")
is a type of THING,
must be one of {Passed, Failed, Indeterminate}.
Passed is an ANALYSIS_RESULT with identifier "Passed".
Failed is an ANALYSIS_RESULT with identifier "Failed".
Indeterminate is an ANALYSIS_RESULT with identifier "Indeterminate".
// results (note "Which analysis report this annotation comes from.") describes ANALYSIS_RESULT with a single value of type ANALYSIS_OUTPUT.

ANALYSIS
(note "ACTIVITY of running some analysis, and as a result creating some ANALYSIS_REPORT")
is a type of ACTIVITY.

performedBy (note "Entity that is responsible for producing an analysis, could be a person or a tool. ") describes ANALYSIS with values of type AGENT.
performedBy is a type of wasAssociatedWith.

ANALYSIS_ANNOTATION_TYPE
(note "An open/extensible set of types of analysis annotations")
is a type of THING.

// A few common instances:
PRECONDITION
(note "A constraint that should hold in advance of successful operation of this unit of code.")
is an ANALYSIS_ANNOTATION_TYPE,
with identifier "Precondition".
POSTCONDITION
(note "A constraint that should hold after of successful operation of this unit of code.")
is an ANALYSIS_ANNOTATION_TYPE,
with identifier "Postcondition".
INVARIANT
(note "A constraint on this unit of code or data that is true at any point in the program's execution.")
is an ANALYSIS_ANNOTATION_TYPE,
with identifier "Invariant".

ANALYSIS_ANNOTATION
ANALYSIS_RESULT
(note "A result of the analysis that is linked to some specific part of the system.")
is a type of ENTITY.
fromReport (note "Which analysis report this annotation comes from.") describes ANALYSIS_ANNOTATION with a single value of type ANALYSIS_OUTPUT.
annotationType (note "The type of the annotation.") describes ANALYSIS_ANNOTATION with a single value of type ANALYSIS_ANNOTATION_TYPE.
fromOutput (note "Which analysis report this annotation comes from.") describes ANALYSIS_RESULT with a single value of type ANALYSIS_OUTPUT.
finding (note "Individual elements of the result.") describes ANALYSIS_RESULT with values of type ANALYSIS_FINDING.

ANALYSIS_FINDING
(note "An open/extensible set of analysis findings.")
is a type of THING.

0 comments on commit c633713

Please sign in to comment.