`# Operational Analysis
View how mission objectives are addressed by operational capabilities allocated to operational entities.
---
stylesheet:
- selector: diagram
style:
layout:
type: dagre
rankdir: TB
ranksep: 50
nodesep: 20
- selector: node
style:
stroke-width: 0
icon:
preserveAspectRatio: xMidYMid meet
label:
textVerticalAnchor: top
refY: "100%"
textAnchor: middle
- selector: node.objective
style:
width: 48
height: 48
icon:
href: ../../../../../method/md/images/objective.svg
- selector: node.capability
style:
width: 48
height: 48
icon:
href: ../../../../../method/md/images/capability.svg
- selector: node.actor
style:
width: 24
height: 53
icon:
href: ../../../../../method/md/images/actor.svg
- selector: node.entity
style:
width: 64
height: 64
icon:
href: ../../../../../method/md/images/entity.svg
---
PREFIX mission: <https://www.modelware.io/sierra/mission#>
PREFIX entity: <https://www.modelware.io/sierra/entity#>
PREFIX : <http://opencaesar.io/oml/diagram#>
CONSTRUCT {
?objective a :Node ;
:text ?objectiveLabel ;
:class 'objective' .
?capability a :Node ;
:text ?capabilityLabel ;
:class 'capability' .
?entity a :Node ;
:text ?entityLabel ;
:class ?entityClass .
?requires a :Edge ;
:source ?objective ;
:target ?capability .
?assigns a :Edge ;
:source ?capability ;
:target ?entity .
}
WHERE {
?objective mission:requires ?capability .
?capability entity:isAssignedTo ?entity .
BIND(IRI(CONCAT("/requires/", MD5(CONCAT(STR(?objective), STR(?capability))))) AS ?requires)
BIND(IRI(CONCAT("/assigns/", MD5(CONCAT(STR(?capability), STR(?entity))))) AS ?assigns)
BIND(IF (EXISTS { GRAPH ?g4 { ?entity a entity:Actor } }, "actor", "entity") AS ?entityClass)
BIND(REPLACE(STR(?objective), "^.*[#/]", "") AS ?objectiveLabel)
BIND(REPLACE(STR(?capability), "^.*[#/]", "") AS ?capabilityLabel)
BIND(REPLACE(STR(?entity), "^.*[#/]", "") AS ?entityLabel)
}
View how requirements are broken down by category and priority.
---
type: bar
data:
labels: category
datasets:
- label: Requirements
data: count
options:
indexAxis: y
plugins:
title:
display: true
text: Requirements by Category
legend:
display: false
scales:
x:
beginAtZero: true
title:
display: true
text: Count
---
PREFIX base: <https://www.modelware.io/sierra/base#>
PREFIX stakeholder: <https://www.modelware.io/sierra/stakeholder#>
SELECT ?category (COUNT(?req) AS ?count)
WHERE {
GRAPH ?g1 {
?req a stakeholder:Requirement ;
base:category ?category .
}
}
GROUP BY ?category
ORDER BY DESC(?count)
---
type: pie
data:
labels: priority
datasets:
- label: Requirements
data: count
options:
plugins:
title:
display: true
text: Requirements by Priority
legend:
position: right
---
PREFIX base: <https://www.modelware.io/sierra/base#>
PREFIX stakeholder: <https://www.modelware.io/sierra/stakeholder#>
SELECT ?priority (COUNT(?req) AS ?count)
WHERE {
GRAPH ?g1 {
?req a stakeholder:Requirement ;
base:priority ?priority .
}
}
GROUP BY ?priority
ORDER BY DESC(?count)