Check that all stakeholders have concerns and all concerns are traced to stakeholders.
---
layout:
mode: force
running: true
fit: true
padding: 24
force:
repulsion: 4200
linkDistance: 130
springStrength: 0.006
gravity: 0.0012
damping: 0.90
maxSpeed: 4
group:
intraAttraction: 0.0025
interRepulsionFactor: 3.0
stylesheet:
- selector: node [value.includes("Concern") || outgoing.some(e => e.target.value.includes('Concern'))]
group: concern
style:
fill: cyan
stroke: grey
stroke-width: 1
- selector: node [value.includes("Stakeholder") || outgoing.some(e => e.target.value.includes('Stakeholder'))]
group: stakeholder
style:
fill: yellow
stroke: grey
stroke-width: 1
---
PREFIX stakeholder: <https://www.modelware.io/sierra/stakeholder#>
CONSTRUCT {
?concern a stakeholder:Concern .
?stakeholder a stakeholder:Stakeholder .
?stakeholder stakeholder:expresses ?concern .
}
WHERE {
{ ?concern a stakeholder:Concern }
UNION
{ ?stakeholder a stakeholder:Stakeholder }
UNION
{
?stakeholder a stakeholder:Stakeholder .
?concern a stakeholder:Concern .
?stakeholder stakeholder:expresses ?concern .
}
}
The number of ways a mission satisfies a stakeholder.
---
rowColumnLabel: Mission / Stakeholder
stylesheet:
- selector: cell [Number(value) > 1]
style:
background-color: lightgreen
---
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX mission: <https://www.modelware.io/sierra/mission#>
PREFIX stakeholder: <https://www.modelware.io/sierra/stakeholder#>
SELECT ?row ?column (COALESCE(?n, 0) AS ?value)
WHERE {
?row a mission:Mission .
?column a stakeholder:Stakeholder .
OPTIONAL {
SELECT ?row ?column (COUNT(*) AS ?n)
WHERE {
?row a mission:Mission .
?row mission:pursues ?o .
?o mission:isDerivedFrom ?c .
?c stakeholder:isExpressedBy ?column .
}
GROUP BY ?row ?column
}
}
ORDER BY ?row ?column